摘要
前不久碰到一個需求,在寬度不固定下實現(xiàn)橫線滾動,這里我用css來寫,記錄下來,供以后借鑒。
有時會忘記
原理
子元素的寬度大于父元素是,會出現(xiàn)滾動 overflow-x: scroll; 為水平滾動,overflow-y: scroll; 為垂直滾動,按需求這里采用水平橫向滾動
// html 如下
<div class="content">
<div class="redPacket">
<div class="item" style="margin-right:10px;border-radius:4px;">
<div class="amount">
<span>2</span>元
</div>
<div class="fundInfo">
<p class="name">鵬華基金鵬友會</p>
<p>滿1000元可用</p>
</div>
</div>
<div class="item" style="margin-right:10px;border-radius:4px;">
<div class="amount">
<span>2</span>元
</div>
<div class="fundInfo">
<p class="name">鵬華基金鵬友會</p>
<p>滿1000元可用</p>
</div>
</div>
</div>
</div>
// css如下
* {
margin:0;
padding:0;
}
body {
width:320px;
height: 40px;
overflow: hidden;
margin:100px auto;
}
.content {
width: 100%;
overflow-x: scroll; // 子元素的寬度大于父元素的即可滾動
overflow-y: hidden;
border-radius: 4px;
}
/* .content::-webkit-scrollbar {display:none} // 隱藏滾動條*/
.redPacket{
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
float: left; // 使其脫離文檔流 寬度為所有字元素的和
min-width: 100%;
}
.item {
min-width: 150px;
height: 50px;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
flex: 3;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
background-image: linear-gradient(90deg,#ff6d0b 2%,#ef4916);
padding: 0 10px;
}
.amount {
text-align: center;
padding-right: 10px;
font-size: 12px;
color: #FFD41D;
border-right: 1px solid #FFA068;
}
.amount span {
font-size: 30px;
line-height: 30px;
}
.fundInfo {
padding: 8px 10px;
}
.fundInfo p {
color: #FFF;
font-size: 12px;
}
效果:
demo1.gif
總結(jié):redPacket 在沒有添加float: left; 樣式的時候。小屏手機(iPhone5) 出現(xiàn)樣式錯亂現(xiàn)象,這是由于 redPacket寬度和父級寬度一致(100%),并且默認(rèn)item的最小寬度為最終寬度,子集撐不開,樣式亂碼,添加float: left; 后 ,使其脫離文檔流,寬度變?yōu)樗凶蛹╥tem)之和,這樣里面文字無論變?yōu)槎嗌伲淖侄疾粫浑[藏 。
對應(yīng)源代碼和實例效果 ,放到了codepen 上,如果想實踐可以去查閱。
以上為此文章所有內(nèi)容