Bỏ dropdown mặc định của selectbox và tùy chỉnh sang dropdown khác

Dropdown mặc định của selectbox mặc định padding rất sát với viền, và bạn muốn bỏ phần mũi tên của selectbox đó đi, bạn hãy copy đoạn code css bên dưới và dán vào phần css của bạn

Từ ảnh

bo-dropdown-mac-dinh-cua-select-box

Sang:

da-bo-dropdown-mac-dinh-cua-selectbox

select {
  text-overflow: '';
 -webkit-appearance: none;
 -moz-appearance: none;
 text-indent: 1px;
}
select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");
  background-position: right 0.5rem center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  padding-right: 2.5rem;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

Bỏ phần điều chỉnh tăng giảm số lượng input type number

Từ ảnh

xoa-dieu-chinh-tang-giam-so-luong

Sang:

da-xoa-dieu-chinh-tang-giam-so-luong

 

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}

Điều chỉnh phần tăng giảm số lượng cho đẹp hơn

chinh-tang-giam-so-luong-the-input-number

Để chỉnh sửa lại phần điều chỉnh số lượng giống ảnh bên trên bạn hãy copy các đoạn html, css, jquery sau:

HTML

<div class="quantity">
  <a href="javascript:void(0);" class="plus" rel="nofollow">
    <svg width="13" height="20" stroke-width="2" viewBox="0 0 24 24" fill="currentColor">
      <path d="M12 6V18" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
      <path d="M6 12H18" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
    </svg>
  </a>
  <input type="number" id="quantity" class="input-text qty text" name="quantity" value="4" aria-label="Product quantity" min="0" max="" step="1" placeholder="" inputmode="numeric" autocomplete="off">
  <a href="javascript:void(0);" class="minus" rel="nofollow">
    <svg width="13" height="20" stroke-width="2" viewBox="0 0 24 24" fill="currentColor">
      <path d="M6 12H18" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
    </svg>
  </a>
</div>

Css

/* Woocommerce quantity */
.quantity {
  position: relative;
  display: inline-block;
  float: none;
  margin: 0;
  width: 65px;
  text-align: left;
}
.quantity .input-text.qty {
  border: 1px solid #efefef;
  height: 42px;
  padding: 0px;
  line-height: 41px;
  width: 45px;
  display: inline-block;
  margin: 0;
  text-align: center;
  color: #666666;
  font-weight: normal;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
.quantity .minus,
.quantity .plus {
  position: absolute;
  right: 0;
  width: 21px;
  height: 21px;
  border: 1px solid #efefef;
  background-color: #fff;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.quantity .minus svg,
.quantity .plus svg {
  height: 100%;
}
.quantity .minus:hover,
.quantity .plus:hover {
  background: #efefef;
  color: #000;
}
.quantity .plus {
  top: 0;
  line-height: 17px;
  border-radius: 0 5px 0 0;
}
.quantity .minus {
  bottom: 0;
  line-height: 19px;
  border-top: 0;
  border-radius: 0 0 5px 0;
}

jQuery

/* Quantity inputs */  
$('body').on('click', '.plus, .minus', function(e){
    e.preventDefault();
    // get value
    let $qty = $(this).siblings('.qty'),
        form_cart = $(this).closest('.cart'),
        min = $qty.attr('min'),
        max = $qty.attr('max'),
        step = $qty.attr('step'),
        currentVal = parseFloat( $qty.val() );
    
    // format value
    min = !min ? '' : min;
    max = !max ? '' : max;
    if( step === '' || step === undefined || typeof step === NaN ){
        step = 1;
    }    

    // Change value when click plus
    if( $(this).hasClass('plus') ){
        if( max && max == currentVal ){
            $qty.val(max);
        }else{
            $qty.val( currentVal + parseFloat(step) );
        }
    }
    // Change value when click minus
    else{
        if( min && min == currentVal ){
            $qty.val(min);
        }else{
            $qty.val( currentVal - parseFloat(step) );
        }            
    }

    $qty.trigger('change');
})

Bài viết liên quan

post-no-image

Update post meta ACF sử dụng Rest API WordPresss

post-no-image

Jquery ngăn không cho ô input type number nhập ký tự không hợp lệ

post-no-image

Hướng dẫn làm phần compare products trong Woocommerce

post-no-image

Loadmore product woocommerce infinity scroll

post-no-image

Add the Meta Box Upload Multiple Images and multiple metabox

post-no-image

Add the Meta Box Repeat