浮动布局在页面缩小时的布局变形问题,原因,及一种解决办法 | 您所在的位置:网站首页 › 网页上浮动的图 › 浮动布局在页面缩小时的布局变形问题,原因,及一种解决办法 |
问题描述:
浮动布局在页面缩小时,布局变形,最后一个子元素被挤到下一排。效果如下↓ 效果展示: 问题出现的条件:1.宽度采用px固定值; 2.子元素宽度相加,正好等于父元素宽度; 3.有左右边框 问题出现的原因:你css里边框写的是1px,页面缩放到50%,就是0.5px,小于屏幕最小能显示的1px,是无法显示的; 这个时候你的谷歌浏览器,就会把你写的1px变为2px,缩小一倍正好是原来的1px。 但是这个时候,在css里,子元素多了1px,原来严丝合缝的布局被打破了,最后一个子元素就被挤下去了。css像素和屏幕像素的关系点这里 一种解决方法:使用ie盒子模型box-sizing: border-box;会把边框算进width里(width=content+padding+border) 有时候width在放缩时也变化,没有边框布局也会变形,可以用百分比表示子元素宽度。 更深的探索1px的边框在屏幕放缩80%时,1px开始变大。(为何是80%的原因是我使用的笔记本电脑,屏幕较小,系统为防止字体过小,系统默认屏幕缩放为125%。而80%*125%=100%,所以我们将浏览器缩放为80%时,css里的1px才真的对应一个屏幕像素),所以chorme是在边框低于1屏幕像素时,会将css像素改大,使边框最小只能是1屏幕像素; 屏幕放缩倍数css像素两者之积(屏幕像素)100%1px1px90%1px0.9px80%1px0.8px75%1.067px0.80025px67%1.2px0.804px50%1.6px0.8px33%2.4px0.792px25%3.2px0.8px谷歌浏览器放大css像素的目的是为了将其屏幕像素保持在0.8px左右(电脑默认缩放125%的情况下);如果你是台式机,电脑默认缩放100%,就会是保持在1px。 猜测谷歌浏览器认为小于1屏幕像素的元素无法显示。 而边框虽然细小,但却是非常重要的页面组成部分,所以在屏幕像素小于1屏幕像素时,谷歌就采用放大css像素的策略。 那么内边距padding有这样的性质吗 测试结果是不会,只有边框有这样的性质 能否给边框宽设置为百分比来解决问题? 答案是不能,理由如下↓ 为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em;或者使用 3 个关键字之一,它们分别是 thin 、medium(默认值) 和 thick。 |
CopyRight 2018-2019 实验室设备网 版权所有 |