我们知道,设置overflow: auto后盒子会随着内容超出自动出现滚动条,而设置overflow:scroll滚动条会一直存在。但overflow: auto表现却是有差异的
以 chrome49 与 chrome79 为例:
1 | <!-- html --> |
1 | /* css */ |
overflow:auto表现不一致。可以看出 chorme79 下.box的width与 chorme49 下content+滚动条width(通常默认是17px)是相等的。说明在 chrome49 下overflow:auto滚动条占据了内容的部分宽度导致内容显示不全,而高版本 chrome79 下不占用内容宽度。
1 | ul { |

overflow-y: scroll表现一致,与 chrome79 下的overflow: auto效果相同
1 | ul { |

为了抹平 chrome 之间差异,可用下面css方案解决,js方案不再赘述
- 定宽
1 | ul { |
- 自适应宽度
1 | ul { |
overlay 行为与 auto 相同,但滚动条绘制在内容之上而不是占用空间。 仅在基于 WebKit(例如,Safari)和基于 Blink 的(例如,Chrome 或 Opera)浏览器中受支持。