首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当父宽度为奇数像素值时错误地计算100%宽度- Bootstrap (Chrome)

当父宽度为奇数像素值时错误地计算100%宽度是一个与Bootstrap和Chrome浏览器相关的问题。

Bootstrap是一个流行的前端开发框架,它提供了一套用于构建响应式和移动优先的网站和应用程序的工具和组件。它基于HTML、CSS和JavaScript,并提供了一系列预定义的样式和布局类,使开发人员能够快速构建美观且一致的界面。

在Bootstrap中,使用百分比宽度来实现响应式布局是常见的做法。然而,当父元素的宽度为奇数像素值时,在某些情况下,Chrome浏览器会错误地计算100%宽度,导致布局出现问题。

这个问题的具体原因是由于浏览器的像素计算方式和浮点数精度问题引起的。浏览器在计算百分比宽度时,会将父元素的宽度除以100,然后乘以百分比值。当父元素的宽度为奇数像素时,除以100得到的结果会有小数部分,而浏览器在渲染时会将小数部分四舍五入到最接近的整数像素值。这就导致了计算结果的误差,使得子元素的宽度与预期不符。

为了解决这个问题,可以采取以下几种方法:

  1. 使用CSS的calc()函数:可以通过使用calc()函数来计算百分比宽度,而不是直接使用百分比值。例如,可以将宽度设置为calc(50% - 1px),这样可以避免浏览器计算误差。
  2. 使用flexbox布局:可以使用flexbox布局来实现响应式布局,而不依赖于百分比宽度。flexbox布局提供了更灵活和可靠的方式来定义元素的宽度和布局。
  3. 使用其他单位:如果可能的话,可以考虑使用其他单位来替代百分比宽度,例如像素(px)或视窗单位(vw)。这些单位在计算时不会受到浏览器计算误差的影响。

总结起来,当父宽度为奇数像素值时错误地计算100%宽度是一个与浏览器计算方式和浮点数精度问题相关的Bug。为了避免这个问题,可以使用calc()函数、flexbox布局或其他单位来替代百分比宽度。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

第141天:前端开发中浏览器兼容性问题总结(二)

IE6 width奇数,右边多出1px的问题 问题: 级元素采用相对定位,且宽度设置奇数,子元素采用绝对定位,在ie6中会出现右侧多出1像素 解决: 将宽度奇数值改成偶数 12....IE6 列表背景颜色失效的问题 问题: 元素设置position:relative;,在ie6中第一个ul、ol、dl的背景颜色失效 解决:  ul、ol、dl 都设置position:relative...2、减小第二个容器的宽度,使容器宽度减去第二个容器宽度大于3 3、去掉所有的注释。 4、修正注释的写法。这里是注释内容<!...2、给层设置宽度width bottom的定位错误问题 1、给层设置zoom:1触发layout。 2、给层设置高度height 43. ...子容器宽度大于容器宽度,内容超出 问题: 子DIV的宽度DIV的宽度都已经定义,在IE6中如果其子DIV的宽度大于DIV的宽度DIV的宽度将会被扩展,在其他浏览器中DIV的宽度将不会扩展

1.9K21

104道 CSS 面试题,助你查漏补缺(上)

这决定了当你没有为元素的属性指定该如何计算 元素的一个继承属性没有指定,则取元素的同属性的计算。...10.display 有哪些?说明他们的作用。 block 块类型。默认宽度元素宽度,可设置宽高,换行显示。 none 元素不显示,并从文档流中移除。 inline 行内元素类型。...来龙去脉大概如下: 设置了zoom的之后,所设置的元素就会就会扩大或者缩小,高度宽度就会重新计算了,这里一旦改变zoom其实也会发 生重新渲染,运用这个原理,也就解决了ie下子元素浮动时候元素不随着自动扩大的问题...在IE中,一个元素要么自己对自身的内容进 行计算大小和组织,要么依赖于元素来计算尺寸和组织内容。一个元素的hasLayout属性true,它负责对自己和可 能的子孙元素进行尺寸计算和定位。...),那么这个元素的宽度就是设备屏幕的宽度了,也就是宽度100%的效果。

2.1K10
  • CSS入门13-单位详解

    如果用于font-size属性本身,相对于元素的font-size计算;若用于其他属性,相对于元素本身的font-size计算。 <!...3.1.2-1 但是根部元素设置成rem或者使用默认大小不方便计算,所以一般将根部元素字体大小设置100px。为什么不是10px呢,因为chrome下字体大小最小12px。 <!...实际上,很多浏览器取em一半作为ex。 ex在实际中常用于微调。 3.1.4 ch ch与ex类似,被定义数字0的宽度无法确定数字0宽度,取em的一半作为ch。 IE8-不支持。...3.2 相对视窗宽高的长度单位 视窗相关的长度相对于初始包含块的大小。当初始包含块的宽高变化时,它们都会相应缩放。然而,根元素的overflowauto,任何滚动条会假定不存在。...(对于vmax,所有IE浏览器都不支持) 另外,黑莓错误的将其相对于视觉视窗来计算。而safari奇怪相对于html元素来计算,如果html中增加了内容,这两个单位也会发生变化。

    62820

    104 道 CSS 面试题 - 知识点总结

    这决定了当你没有为元素的属性指定该如何计算元素的一个继承属性没有指定,则取元素的同属性的计算。...来龙去脉大概如下: 设置了zoom的之后,所设置的元素就会就会扩大或者缩小,高度宽度就会重新计算了,这里一旦改变zoom其实也会发 生重新渲染,运用这个原理,也就解决了ie下子元素浮动时候元素不随着自动扩大的问题...在IE中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于元素来计算尺寸和组织内容。一个元素的hasLayout属性true,它负责对自己和可能的子孙元素进行尺寸计算和定位。...dpr指的是设备像素和设备独立像素的比值,一般的pc屏幕,dpr=1。在iphone4,苹果推出了retina屏幕,它的dpr2。屏幕的缩放会改变dpr的。...百分比值,其最终的计算是和当前font-size相乘后的长度原意不变。

    4.3K10

    104道 CSS 面试题,助你查漏补缺

    这决定了当你没有为元素的属性指定该如何计算 元素的一个继承属性没有指定,则取元素的同属性的计算。...来龙去脉大概如下: 设置了zoom的之后,所设置的元素就会就会扩大或者缩小,高度宽度就会重新计算了,这里一旦改变zoom其实也会发 生重新渲染,运用这个原理,也就解决了ie下子元素浮动时候元素不随着自动扩大的问题...在IE中,一个元素要么自己对自身的内容进 行计算大小和组织,要么依赖于元素来计算尺寸和组织内容。一个元素的hasLayout属性true,它负责对自己和可 能的子孙元素进行尺寸计算和定位。...dpr指的是设备像素和设备独立像素的比值,一般的pc屏幕,dpr=1。在iphone4,苹果推出了retina屏幕,它的dpr 2。屏幕的缩放会改变dpr的。...百分比值,其最终的计算是和当前font-size相乘后的长度原意不变。

    1.8K10

    css div高度设置100%如何生效!

    例如,一个 元素里面有一张 vertical-align bottom 同时高度 192 像素的图片,此时,该高度就是 192 像素,假设此时插入一个子元素,高度设为 100%...,如果此时 height:100%可以计算,则 子元素应该也是 192 像素。...但是,元素 height 是 auto,岂不是现在高度要从原来的 192 像素变成 384 像素,然后 height:100%的子元素高度又要变成 384 像素元素高度 又双倍……死循环了!...因此,渲染到元素的时候,子元素的 width:100%并没有渲染,宽度就是图片加文字内容的宽度;等渲染到文字这个子元素的时候, 元素宽度已经固定,此时的 width:100%就是已经固定好的元素的宽度...那问题又来了:为何宽度支持,高度就不支持呢?规范中其实给出了答案。如果包含 块的高度没有显式指定(即高度由内容决定),并且该元素不是绝对定位,则计算 auto。

    5.8K00

    Flutter你竟是这样的布局

    ---- 学习Flutter的人问你,为什么宽度100的某些小部件在显示的时候,宽度不为100像素,你的默认答案是告诉他们将小部件放在Center内,对吗? 不要这样做。...布局是自上而下,当前widget会有基本的一些约束(来自它的元素),主要是关于宽高的最小和最大 Widget无法知道也不决定其在屏幕上的位置,因为Widget的级决定小部件的位置。...在这种情况下,容器的宽度4000像素,并且太大而无法容纳在OverflowBox中,但是OverflowBox会尽可能显示尽可能多的内容,而不会发出警告。 Example 16 ?...LimitedBox赋予无限大小时,它向下传递的约束最大宽度100像素。..., ] ) Row的子Child被包裹在Expanded中,Row将不再让该Child定义自己的宽度。 取而代之的是,Row会根据所有Expanded的Child来计算其该有的宽度

    2.3K20

    JS:用rem来做响应式开发

    但前一个项目做完之后我发现bootstrap虽好,但里面的各种样式我利用的很少,最多用到它排版,网站最后上传的时候你会发现,即使压缩之后,它也会占用相当大的一部分,所以这次我想自己用原生写,响应式开发...子元素宽度50%,那么元素的宽度就是百,子元 素的padding-left:50%,元素的宽度是百,子元素的margin-top:20%,那么元素的高是百。...(你还可以设置更多节点) 用媒体查询的话要保证每个像素下都有对应的适配效果显然你要设置更小的宽度范围; 3.还有就是css3的单位rem: rem就是将根节点html的font-size的作为整个页面的基准尺寸...那就要用到js在页面加载获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度640px,因为640px可以保证在至今最宽的手机上显示网页两端刚好贴合屏幕...,当你把这个小demo拿到谷歌浏览器里面验证的时候,你会发现开始这3个div会随着你浏览器窗口缩小而缩小,到达某个后就不动了,原因是谷歌浏览器默认支持html的font-size最小10px;在小于这个就不会再小了

    6.1K10

    移动端web开发入门笔记

    但理论上的宽度等于viewport的宽度100%,viewport实际上等于浏览器窗口。 是的,它就是这么定义的,就这么抽象去理解它。...浏览器的这一性质会带来一些影响,比如我们的导航条的宽度设置成100%,那么页面放大的时候,就会出现下面的状态: ?...可以看到,缩放比例100%,layout viewport = visual viewport,当用户将页面放大,显示在屏幕上的页面部分变化了,所以visual viewport变化了,而layout...在上面那条标签中,顾名思义width=device-width是将layout viewport的宽度设置屏幕的宽度,但这里有些隐情就是比如使用device-width,Nexus One的正规宽度是...visual viewport的大小 设置页面的layout viewport的大小刚刚计算出的visual viewport的大小 4.initial-scale指令与width指令冲突,浏览器的行为

    1.7K90

    H5页面适配及微信默认字号问题的最佳实践

    px 最常用的 绝对单位,按精确像素计算 1.2 基于字号 em / rem em 是 相对单位,基准节点字体大小,若自身定义了 font-size 则按自身计算,不推荐使用 rem 是 相对单位...,和 css 中的 % 按照元素的宽高作为计算基准的方式不同 vmin / vmax 取视窗宽高二者中较小 / 大的百分比进行计算 /* 元素始终在屏幕上可见 */ .box { width...fixed; 的元素是相对于可视窗口,并且元素没有指定高度,子元素设置百分比没有效果,高度直接子元素的实际高度 vm css3 新单位,相对于视窗宽高较小的那个的百分比,兼容性较差 下面的单位几乎用不到...的字体大小 设备宽度 / 设计稿宽度 * 100 个px像素,以 iPhone 6/7/8 的宽度 375px 例,则 html 字体的大小 50px,即在宽度 375 px 的设备上,1rem...对于开发人员,一个宽度 50px 的 div,就可以很轻松的通过除以 100计算出对应的 rem 0.5rem,不需要再根据各种机型进行适配,0.5rem 换算到 iPhone 6/7/8

    3.3K140

    移动端web开发入门笔记

    但理论上的宽度等于viewport的宽度100%,viewport实际上等于浏览器窗口。 是的,它就是这么定义的,就这么抽象去理解它。...浏览器的这一性质会带来一些影响,比如我们的导航条的宽度设置成100%,那么页面放大的时候,就会出现下面的状态: ?...可以看到,缩放比例100%,layout viewport = visual viewport,当用户将页面放大,显示在屏幕上的页面部分变化了,所以visual viewport变化了,而layout...在上面那条标签中,顾名思义width=device-width是将layout viewport的宽度设置屏幕的宽度,但这里有些隐情就是比如使用device-width,Nexus One的正规宽度是...visual viewport的大小 设置页面的layout viewport的大小刚刚计算出的visual viewport的大小 4.initial-scale指令与width指令冲突,浏览器的行为

    1.1K10

    前端常见技术点 - CSS DOM 布局(43问)

    :solid 100px blue; width: 0; height: 0; 7、如何修改 Chrome 记住密码后自动填充表单的黄色背景?...的理解 行高指的是文本行的基线间的距离,line-height 若使用百分比则实际像素所有继承的元素的 font-size 乘以这个百分比,是先计算然后转换为像素;若使用直接像素,则所有继承元素使用相同的...,内容不脱离文档流,即一种文字环绕图片的效果); absolute:元素默认宽度内容宽度;脱离文档流;参照物第一个定位祖先(设置了 position 并且不是 static 的元素)/根元素;如果设置了...按百分比设定一个元素的宽度,它是相对于容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-to、padding-bottom、margin-top、margin-bottom...等,按百分比设定它们,依据的也是容器的宽度,而不是高度。

    1.5K30

    CSS:绝对单位、相对单位

    image.png image.png  在第一个box里,整个宽度600px,宽度300px的和宽度50%等长。...vw:基于视窗的宽度计算,1vw 等于视窗宽度的百分之一 vh:基于视窗的高度计算,1vh 等于视窗高度的百分之一 vmin:基于vw和vh中的最小计算,1vmin 等于最小的百分之一 vmax:...基于vw和vh中的最大计算,1vmax 等于最大的百分之一 下面我们实例说明实现一个宽度视窗宽度的 25%,高度视窗高度 50% 的一个盒子: .box { height: 50vh; /...简单示例如下: .box { height: calc(50vh - 20px); /* 50% 的视窗高度减掉20px */ width: calc(100% / 3); /* 三分之一的容器宽度...*/ background: red; } 注:chrome 浏览器最小的字体 12px,如果设置 10px 也会渲染成 12px 。

    2.1K20

    微信小程序布局单位的使用

    如在 iPhone6 上,屏幕宽度750 px,则共有个750 物理像素,则750 rpx = 375px = 750 物理像素 例如 : 1rpx = 0.5px = 1物理像素 但是不同iOS设备上...,可理解”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。...根据设计稿按照1rem = 40px 对着各个元素进行单位转换 px:绝对单位,页面按精确像素展示 em:相对单位,基准点节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是...16px),整个页面内1em不是一个固定的。...小程序中,窗口宽度固定为100vw,将窗口宽度平均分成100份,1份是1vw 小程序中,窗口高度固定为100vh ,将窗口高度平均分成100份,1份是1vh [图片.png] vmin:vw和vh中较小的那个

    3K61

    前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配

    设备独立像素 以 iPhone6/7/8例,这里我们打开 Chrome 开发者工具: 这里的 375 * 667 表示的是什么呢,表示的是设备独立像素(DIP),也可以理解 CSS 像素,也称为逻辑像素...简单的计算公式: DPR = 物理像素 / 设备独立像素 我们套用一下上面 iPhone7 的数据(取设备的物理像素宽度与设备独立像素宽度进行计算): iPhone7’s DPR = iPhone7’s...)不支持百分; 边框圆角半径(border-radius)支持百分比值,但水平方向相对参考是盒子的宽度,垂直方向相对参考是盒子的高度; 文本大小(font-size)支持百分比值,但相对参考元素的...在 dpr = 2 ,此时 1 物理像素等于 0.5 CSS 宽度像素,可以认为 border-width: 1px 这里的 1px 其实是 1 CSS像素宽度,等于 2 像素物理宽度,设计师其实想要的是...,表示 屏幕的 dpr = 1 ,使用 images/illustration-small.png 这张图 屏幕的 dpr = 2 ,使用 images/illustration-big.png

    3.1K32

    57道常被问的CSS面试题及答案汇总,帮你查漏补缺

    按百分比设定一个元素的宽度,它是相对于容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom...等,按百分比设定它们,依据的也是容器的宽度,而不是高度。...这些元素之间的间距会随着字体的大小而变化,行内元素font-size:16px,间距8px。...数值,单位s(秒)或ms(毫秒),默认是0。有多个过渡属性,可以设置多个过渡时间分别应用过渡属性,也可以设置一个过渡时间应用所有过渡属性。...如果不显示设置viewport,那么浏览器就会把width默认设置980。但后果是浏览器出现横向滚动条,因为浏览器可视区域的宽度比默认的viewport的宽度小。

    2.6K31

    57道CSS常问面试题及答案汇总

    按百分比设定一个元素的宽度,它是相对于容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom...等,按百分比设定它们,依据的也是容器的宽度,而不是高度。...这些元素之间的间距会随着字体的大小而变化,行内元素font-size:16px,间距8px。...数值,单位s(秒)或ms(毫秒),默认是0。有多个过渡属性,可以设置多个过渡时间分别应用过渡属性,也可以设置一个过渡时间应用所有过渡属性。...如果不显示设置viewport,那么浏览器就会把width默认设置980。但后果是浏览器出现横向滚动条,因为浏览器可视区域的宽度比默认的viewport的宽度小。

    2K10

    我碰到的那些面试题html+css

    容器的高度300px;内容高度大于这个,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。 7,浏览器兼容问题七:各种特殊样式的兼容,比如透明度、圆角、阴影等。...,设置box-sizing:border-box,将采用怪异模式解析计算*/ 盒模型一共有两种模式:W3C标准模式和IE怪异模式 一、标准盒子模型 ?...box-sizing:content-box,将采用标准模式解析计算,也是默认模式; 设置box-sizing:border-box,将采用怪异模式解析计算; 8、rem,em,vw 之间的区别...浏览器默认字体是16px, 整个页面内1em不是一个固定的; 字体大小同样都是1.5em,但是效果却截然不同,按照W3C提供的公式, 我们可以计算下:classid1的div字体大小继承自元素body...,可以考虑使用em; 5.vh和vw vh和vw 相对于视口的高度和宽度,1vh等于1/100的视口高度,1vw等于1/100 的视口宽度,比如:浏览器高度900px,宽度750px, 1vh=900px

    1.2K20

    Flutter布局指南之深入理解BoxConstraints

    在这里,Container从它的组件MaterialApp收到了关于屏幕尺寸的Tight约束。因此,即使Container被声明为具有100像素的特定宽度和高度,它也被强迫填满整个屏幕。...上面的示例代码是在一个宽度392.7像素,高度737.5像素的设备上运行的。(注意:这些是逻辑像素)。...由于Container有Loose约束,它可以自由选择最小和最大约束之间的任何尺寸,在这种情况下,它的尺寸是0到屏幕尺寸。但是Container本身有额外的约束,宽度100,高度100。...所以Container选择了100x100,因为它是在Loose约束下。 约束条件从父代传递到子代时会发生什么? 上面的例子表明,一个Widget不可能简单将它收到的约束传递给它的孩子。...然后再往后,每个Widget都会向其子Widget传递约束。 布局Widget有它们自己的特定行为: 把约束传递给子代,父代可以把Tight约束改为Loose约束,或者不加改变传递。

    2.1K20

    如何使用纯 CSS 制作四子连珠游戏

    首先我每个圆孔放置了两个 checkbox 。它们都没有被选中,圆孔就被认为是空的,其中一个被选中,相应的玩家就会把他的圆盘放进去。...这个想法就是统计选中的 input 的数量,偶数(0、2、4等)红色玩家移动,奇数黄色玩家移动。很快我就意识到一般的兄弟选择器不能(也不应该!)按照我想要的方式工作。...当红色玩家选中 radio 按钮,计数器加 1。黄色玩家选中 radio 按钮,计数器就减 1,以此类推。因此,计数器的始终是 0 或 1,偶数或奇数。...用罗马数字表示的 1 和 2 与字符 1 和 2 是相同的,它们的像素宽度也是相同的。 我的想法是将一个玩家(黄色)的单选按钮连接到左边,并将另一个玩家(红色)的单选按钮连接到共享容器的右边。...应用所讨论的技术使 radio input 的容器在选中红色 input 宽度加倍,在选中黄色 input 宽度变为原来的宽度

    2K20
    领券