JSFiddle - React, Tailwind, and code Playground
by Ting-Yuan Chang
HTML
<div id="main">
<ul class=cartItemBlock>
<li>
<div class=cartItemBlock-imgWrap> <img src=http://via.placeholder.com/70x70 alt=Ortie5 class=cartItemBlock-imgWrap-img /> </div>
<div class="cartItemBlock-divWrap name">
<span><a href=/face/ortie-detail.html>天然草本手工皂-蕁麻</a> <div class=vm-customfield-cart></div></span> </div>
<div class="cartItemBlock-divWrap sku">
<span>AR220108</span> </div>
<div class="cartItemBlock-divWrap price"> <span> <span>NT$ 399</span><br> <span>NT$ 580</span> </span>
</div>
<div class="cartItemBlock-divWrap quantity"> <span> <span class="fa-stack circleSign" aria-hidden=true onclick=ProOPC.productqtyChange(this,-1);ProOPC.updateproductqty(this);> <i class="fa fa-circle-o fa-stack-2x"></i> <i class="fa fa-minus fa-stack-1x"></i> </span> <span class=quantityValue>14<input type=hidden class="inputbox input-ultra-mini js-recalculate proopc-qty-input" size=1 maxlength=4 name=quantity[1] value=14 data-quantity=14 /></span> <span class="fa-stack circleSign" aria-hidden=true onclick=ProOPC.productqtyChange(this,1);ProOPC.updateproductqty(this);> <i class="fa fa-circle-o fa-stack-2x"></i> <i class="fa fa-plus fa-stack-1x"></i> </span> </span>
</div>
<div class="cartItemBlock-divWrap price sum"> <span>NT$ 5,586</span> </div>
<div class="cartItemBlock-divWrap option"> <span> <span class=heart><i class="fa fa-heart-o fa-lg fa-fw" aria-hidden=true></i>放入慾望清單</span> <br> <span class=trash
data-vpid=1 onclick="return ProOPC.deleteproduct(this);"><i class="fa fa-trash-o fa-lg fa-fw" aria-hidden=true></i>移除此商品</span> </span>
</div>
</li>
<li>
<div class=cartItemBlock-imgWrap> <img src="http://via.placeholder.com/350x150" alt="ACORELLE SpraySolaire 50SPF-100ml"
class=cartItemBlock-imgWrap-img /> </div>
<div class="cartItemBlock-divWrap name"> <span><a href=/face/sun_spray50-detail.html>【新品】全護植萃防曬乳 SPF50</a> <div class=vm-customfield-cart></div></span> </div>
...
CSS
#main {
width: 290px;
background: white;
}
.cartItemBlock {
list-style-type: none;
padding: 0;
margin-bottom: 0;
}
.cartItemBlock > li {
border-top: solid 1px rgba(69, 66, 69, 0.1);
overflow: auto;
}
.cartItemBlock-imgWrap {
margin: 4px 25px 4px 30px;
width: 70px;
height: 70px;
float: left;
}
.cartItemBlock-imgWrap-img {
max-width: 70px;
max-height: 70px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
position: relative;
}
.cartItemBlock-divWrap {
float: left;
height: 78px;
font-size:0;
margin-right: 10px;
}
.cartItemBlock-divWrap:before {
content: '';
display: inline-block;
vertical-align: middle;
width: 0;
height: 100%;
}
.cartItemBlock-divWrap > span {
display: inline-block;
font-family: NotoSansCJKtc;
font-size: 14px;
font-weight: 500;
letter-spacing: 0.8px;
color: #665857;
vertical-align: middle;
}
.cartItemBlock-divWrap .notice {
font-family: NotoSansCJKtc;
line-height: 1;
letter-spacing: 1px;
color:#c30018;
border-radius: 5px;
padding: 5px 6px;
border: solid 0.5px #c30018;
font-size:12px;
transform: scale(0.833);
transform-origin: 0 0;
display: inline-block;
}
.cartItemBlock-divWrap.name {
width: 340px;
}
.cartItemBlock-divWrap.sku {
display: none;
}
.cartItemBlock-divWrap.price {
width: 210px;
}
.cartItemBlock-divWrap.quantity {
width: 150px;
}
.cartItemBlock-divWrap.quantity .circleSign {
cursor: pointer;
font-size: 12px;
line-height: 200%;
}
.cartItemBlock-divWrap.quantity .quantityValue {
margin: 0px 20px;
font-family: Lato;
font-size: 14px;
font-weight: 500;
letter-spacing: 0.8px;
text-align: center;
color: #353235;
vertical-align: middle;
width: 30px;
display: inline-block;
}
.cartItemBlock-divWrap.price.sum {
width: 175px;
}
.cartItemBlock-divWrap.price > span > span {
font-family: Lato;
font-size: 14px;
font-weight: 500;
letter-spacing: 0.8px;
text-align: center;
color:...