有时候一个简单Bug的出现,往往是由于一点知识小细节;但往往这点小细节看似简单,其背后却颇有韵味。
// <span className="check" />
.check{
position: relative;
display: inline-block;
width: 16px;
height: 15px;
margin: 0 10px;
&::after{
content: "";
position: absolute;
left:0;
width: 100%;
height: 50%;
border: 2px solid #000;
border-radius: 1px;
border-top: none;
border-right: none;
background: transparent;
transform: rotate(-45deg);
}
}
// 部分代码,作用就是循环生成列表
<ul className="detail" >
{
storeTypeInfoMap[type].map(item => (
<li>
{item}
<span className="check" />
</li>))
}
</ul>
// css
.detail {
font-size: 12px;
color: $c-gray;
li {
display: flex;
justify-content: space-between;
align-items: center;
text-align: left;
line-height: 3em;
padding-right: 10px;
.check{
position: relative;
display: inline-block;
width: 16px;
height: 15px;
margin: 0 10px;
&::after{
content: "";
position: absolute;
left:0;
width: 100%;
height: 50%;
border: 2px solid #000;
border-radius: 1px;
border-top: none;
border-right: none;
background: transparent;
transform: rotate(-45deg);
}
}
}
}
list-style-type: disc;
,还是没用?display:list-item
啊;list-style
属性是因为,浏览器对li的默认display:list-item
,就像内敛元素display默认为inline
;<ul className="detail" >
{
storeTypeInfoMap[type].map(item => (
<li>
<p className="detail-item">
{item}
<span className="check" />
</p>
</li>))
}
</ul>
list-style-position
属性,设置为inside将图标放进li中就好(用这个把):display: inline-flex
看看:display:inline-XXX
inline-block
标签设置宽度(根据内容自动,当然可以设置宽度%给图标腾出位置,但这样处理后期更改宽度相对麻烦),以至于当内容不足以一行容下时,p宽度就别撑到父容器的宽度,便换行;font-size: 0
font-size
可以控制其大小;white-space: nowrap
white-space: pre-wrap
试试list-style-position: outside;
然后容器ul设置margin啰)