首先学习一下width属性的定义和用法:
定义和用法
width 属性设置元素的宽度。
说明
这个属性定义元素内容区的宽度,在内容区外面可以增加内边距、边框和外边距。
行内非替换元素会忽略这个属性。
可以通过width属性设置li中字段的宽度根据实际长度显示宽度。在li的样式中加上width:auto就可以实现了;现在来看下面一段代码:
CSS样式设置:
#info_main{text-align:center border:1px solid #CCCwidth:620px}#info_main li{width:autofloat:leftmargin:0px 8px padding:0pxborder:1px solid #CCC}
网页代码:
<div id="info_main"><ul>
<li>时间:{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M","@me")' /}</li>
<li>来源:{dede:field.source/}</li>
<li>作者:{dede:field.writer/}</li>
<li>点击:<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" type='text/javascript' language="javascript"></script>次</li>
</ul>
</div>
HTML部分:
<div id="nav">
<ul>
<li>AAAA</li>
<li>BBBB</li>
<li>CCCC</li>
<li>DDDD</li>
<li>EEEE</li>
<li>FFFF</li>
</ul>
</div>
css部分:
#nav{
margin: 0 auto
border: 2px solid #00CED1
}
ul,li {
margin: 0px
padding: 0px
list-style: none
}
ul{
display: flex
flex-direction: row
flex-wrap: wrap
}
li{
border: 1px solid
width: 100px/*每个元素的初始化宽度*/
text-align: center
margin-top: 10px
margin-bottom: 10px
flex:auto /*这是关键*/
}
扩展资料:
Flex是Flexible Box的缩写,用来为盒装模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。
采用Flex布局的元素,被称为Flex容器(flex container),简称“容器”。其所有子元素自动成为容器成员,成为Flex项目(Flex item),简称“项目”。
容器默认存在两根主轴:水平方向主轴(main axis)和垂直方向交叉轴(cross axis),默认项目按主轴排列。
main start/main end:主轴开始位置/结束位置;
cross start/cross end:交叉轴开始位置/结束位置;
main size/cross size:单个项目占据主轴/交叉轴的空间;
设置在容器上的属性有6种。
flex-direction
flex-wrap
flex-flow
justify-content
align-item
align-content
因为li是块级元素,默认占一行的,要想实现横向排列,一般通过以下两个方法:
float:left
这样设置有一个问题,li浮动以后则脱离了文本流,即不占位置,如果它的父级元素有具体的样式且没有固定宽高,建议父元素清除浮动,或者设置固定宽高
display:inline-block
即把li变为行内元素且可以设置宽高以及边距,这样也有一个问题,低版本的Ie浏览器不兼容inline-block,建议在其后再加两个属性兼容低版本ie
*display:inline
*zoom:1