要实现多个div水平排列,并且自动出现横向滚动条。本来以为只需父级ul元素的overflow-x:auto;overflow-y:hidden,子级li浮动显示,即可以实现。结果测试发现结果并非想象的那样,浮动的子级li在溢出父级ul后,它会自动向下排列,不会保持水平排列了。(可能是li元素中包含了很多div的缘故吧)
从网上找解决方案,比如display;inline;white-space:nowrap;等等这些都试过,发现这些方法在我的页面上得不到理想效果。后来想到不让子级li元素浮动显示,利用display:inline-table来实现水平排列。如下:
/*ul元素样式*/
.lists{
overflow-y:hidden;
overflow-x:auto;
white-space: nowrap;
}
/*li元素样式*/
.cardlist{
display: inline-table;
vertical-align: top;
width:250px;
}
下面给出display的值及解释:
block: 块对象的默认值。将对象强制作为块对象呈递,为对象之后添加新行
none: 隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间
inline: 内联对象的默认值。将对象强制作为内联对象呈递,从对象中删除行
inline-block: 将对象呈递为内联对象,但是对象的内容作为块对象,旁边的内联对象会被呈递在同一行内
compact: 分配对象为块对象或基于内容之上的内联对象
marker: 指定内容在容器对象之前或之后。要使用此参数,对象必须和:after及:before伪元素一起使用
inline-table: 将表格显示为无前后换行的内联对象或内联容器
list-item :将块对象指定为列表项目。并可以添加可选项目标志
table-caption: 将对象作为表格标题显示
table-cell: 将对象作为表格单元格显示
table-column: 将对象作为表格列显示
table-column-group: 将对象作为表格列组显示
table-header-group: 将对象作为表格标题组显示
table-footer-group: 将对象作为表格脚注组显示
还有一种方案高度挤出方案。解决滚动条显示:
/* 分类list */
.sort-container{
overflow: hidden;
/*设置高,以便养藏下方多出来的滚动条*/
height: 30px;
line-height: 30px;
margin-bottom: 5px;
}
.sortList{
/*display: flex;*/
overflow-y:hidden;
overflow-x:auto;
white-space: nowrap;
/*解决ios上滑动不流畅*/
/*-webkit-overflow-scrolling: touch;*/
/*利用padding将滚动条挤出:纵向超出部分将会隐藏,即滚动条部分被挤出可视区域*/
padding-bottom: 20px;
}
/*掩藏滚动条*/
::-webkit-scrollbar {
display: none!important;
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章