移动端web开发:局部区域滚动

要实现多个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;
}

猜你喜欢

转载自blog.csdn.net/milli236/article/details/80535383