元素width:100%; 设置padding出现横向滚动条的问题

当我们给块元素设置宽度为100%,然后再设置padding值想让里面的内容有一定的内边距时,会发现此时内边距的效果达到了,但是却出现了横向滚动条,

原因:padding 是边框和里面内容之间的间隙,如果你设置了padding,padding的值是不变的,当内容+padding大于容器时,它会以容器的左上角为中心,保持padding的距离向外扩展,因此出现了滚动条,正常解决办法是,将元素宽度减去padding值的2倍,但是现在元素宽度值并不是具体的px值,而是百分数,

这种情况下解决办法有两种:
1.最简单的办法是去掉元素宽度值设置,width:100%,块级元素默认就是100%宽度,设置padding后,padding会被计算为宽,实际效果的宽度会自适应的调整为100%。
2.利用css3新特性给父级设置box-sizing:border-box; 此时元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制,元素设定的宽度和高度会自动减去边框和内边距得到内容的宽度和高度。

原文地址:http://blog.51cto.com/13550695/2108135

时间: 2024-08-03 01:17:39

元素width:100%; 设置padding出现横向滚动条的问题的相关文章

input 设置 width:100% 和padding后宽度超出父节点

添加如下css即可: box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box;

padding和width百分比使用时要注意滚动条的出现

最主要的原因还是我对盒子模型理解的不够. 盒子大小最为重要的2个部分就是padding和内容content. 当我们设置width是在设置content的大小,百分比的时候它参照的是父元素的content的大小. 父元素content的大小(即width)为100px,子元素用百分比的时候100%就是100px. 上述联系下. 如果父元素width设置为100%刚好撑满整个设备屏幕,如果这个时候子元素width还是设置为100%: 同时,父元素用了padding,那就要出事了.会有横向滚动条.

IE6下出现横向滚动条问题的解决方案

当我们在css样式设置为html {overflow-y:auto;}时,在ie7以上版本应用时不会有问题,可是在ie6下就会发现垂直滚动条出现会引起横向滚动条出现.究其原因是在ie6下,当内容过多出现垂直滚动条时,此时页面的宽度为其本来宽度加上滚动条的宽度,导致页面宽度超过100%,而出现横向滚动条,在ie7+浏览器中,会自动的识别滚动条,页面宽度为内容的宽度加上滚动条的宽度等于100%,而不会出现滚动条,这相当于是ie的滚动条bug(纯属个人见解,不对的地方还请指出,共同学习交流). 解决上

ext grid添加横向滚动条

Ext.override(Ext.grid.GridView, {                  renderBody : function() {                      var markup = this.renderRows();                      if (markup == "")                          markup = "<div style='width:" + this.g

1.横向滚动条,要设置两个div包裹. 2. 点击切换视频或者图片. overflow . overflow-x

1.横向滚动条. div.1 > div.2 > img img  img 第一: 设置 div.1 一个固定的宽度 和高度  . 例如宽度 700px;  高度是 120px; 设置 overflow-x 第二; 每个图片的 宽度是 150px, 高度 100px( 比 div.1 小, 要可以显示横向滚动条 第三: 重点 . 设置 div.2 的宽度 .  如果有 10个图片, 每个图片margin-right 为 10px,   那么 div.2 的宽度就是  (150+10)*10 这

css 行内元素 块元素 替换元素 非替换元素 以及这些元素的width height margin padding 特性

一.各种元素的width height margin padding 特性(具体css元素的分来参看二) 1.块级元素 width. height. margin的四个方向. padding的四个方向都正常显示,遵循标准的css盒模型.例如:div 2.行内替换元素 width. height. margin的四个方向. padding的四个方向都正常显示,遵循标准的css盒模型. 例如:img 2.行内非替换元素(重点) width. height不起作用,用line-height来控制高度.

行内元素可以设置padding和margin吗

第一:行内元素与宽度宽度不起作用span {width:200px;}没有变化 第二:行内元素与高度高度不起作用span{height:200px;}没用变化 第三:行内元素与padding,marginspan{padding:200px;}影响左右,不影响上下 行内元素(inline-block)的padding左右有效 ,但是由于设置padding上下不占页面空间,无法显示效果,所以无效.其margin-top和padding-bottom上下会合并,所以不建议使用. 原文地址:http:

css top,right,bottom,left设置为0有什么用?它和width:100%和height:100%有什么区别?

 壹 ? 引 当我们使用position属性时,总免不了与top,left,right,bottom四个属性打交道,那么这四个属性都设置为0时有什么用,与宽高设置100%又有什么区别?本文对此展开讨论.  贰 ? 关于top left right bottom position定位属性大家都不会陌生,添加position属性的元素可以定位,而top,left,right,bottom属性决定元素定位后所在的位置,而在使用定位属性需要注意两点: 第一点,top,left此类定位属性只对添加了pos

select元素中设置padding效果

给select元素增加:padding-left:20px;但是未生效,如下图所示: 在select上如何使设置padding生效? 方法一: 设置属性appearance: 给select增加属性: appearance: none; -webkit-appearance: none; 效果如下: 方法二: 给select设置样式:text-indent: 20px; 效果如下: