CSS 宽度:100% 无滚动条
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6317215/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Width: 100% Without Scrollbars
提问by Nathan Campos
I'm trying to make a part of my webpage that fit the width of the browser, for this I'm using width: 100%
, the problem is that it shows scrollbars and I can't use overflow-x: hidden;
because it will make some of the content hidden, so how I can fix this?
我正在尝试制作适合浏览器宽度的网页的一部分,为此我正在使用width: 100%
,问题是它显示滚动条而我无法使用,overflow-x: hidden;
因为它会使某些内容隐藏,所以我该如何解决这个问题?
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin-right: 10px;
margin-left: 10px;
padding: 0;
-webkit-user-select: text;
}
回答by thirtydot
Because you're using position: absolute
, instead of using:
因为您使用的是position: absolute
, 而不是使用:
width: 100%; margin-right: 10px; margin-left: 10px
you should use:
你应该使用:
left: 10px; right: 10px
That will make your element take the full width available, with 10px
space on the left and right.
这将使您的元素采用可用的全宽,左右各有10px
空间。
回答by Jason Gennaro
You have to remove the margins
on the #news
item
你要删除margins
的#news
项
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin-right: 10px; /*REMOVE THIS*/
margin-left: 10px; /*REMOVE THIS*/
padding: 0;
-webkit-user-select: text;
}
If this doesn't work, you might have margin
and padding
set on the element itself. Your div
- if that is what you are using - might have styles applied to it, either in your stylesheet or base browser styles. To remove those, set the margins specifically to 0
and add !important
as well.
如果这不起作用,您可能会在元素本身上设置margin
和padding
设置。您的div
- 如果这是您正在使用的 - 可能在您的样式表或基本浏览器样式中应用了样式。要删除这些,请专门设置边距0
并添加!important
。
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin: 0 !important;
padding: 0 !important;
-webkit-user-select: text;
}
回答by Michael Sefranek
I had a similar issue with a absolute positioned element, and I wanted to use width 100%. This is the approach I used and it solved my problem:
我有一个与绝对定位元素类似的问题,我想使用宽度 100%。这是我使用的方法,它解决了我的问题:
box-sizing=border-box
box-sizing=border-box
Otherwise I always had a little content and padding pushing past the scroll bar.
否则我总是有一些内容和填充超过滚动条。
回答by Pantelis
It seems that you have set the width to 100%, but there are also margins that force the width to expand beyond that.
似乎您已将宽度设置为 100%,但也有边距迫使宽度超出此范围。
Try googling for "css flexible ( two/three-collumn) layouts".
尝试谷歌搜索“css灵活(两列/三列)布局”。
Here's an example,
这是一个例子,
<div id="cont">
<div id="menu"></div>
<div id="main"></div>
<div class="clear"></div>
</div>
and the css
和 CSS
#menu{
float:left;
height:100%;
width:200px;
}
#main{
padding-left:200px;
}
.clear{clear:both;}
The #menu div
, will be aligned to the left and have a static width of 200px
.
The #main div
, will "begin" below #main
, but because of it's 200px padding
(can also be margin) its content and child elements will start - where #menu
ends.
的#menu div
,将被左对齐,并有一个静态的宽度200px
。的#main div
,将“开始”下方#main
,但由于它的200px padding
(也可以是保证金)其内容和子元素将开始-在那里#menu
结束。
We must not set #main
to a percent width, (for example 100%
) because the 200 pixels of left padding will be added to that, and break the layout by adding scrollbars to the X axis.
我们不能设置#main
百分比宽度,(例如100%
),因为 200 像素的左填充将添加到其中,并通过向 X 轴添加滚动条来破坏布局。
回答by natedavisolds
The answer is that you have margins set that will make the div wider than the 100%; hence the scrollbars.
答案是您设置的边距将使 div 比 100% 更宽;因此滚动条。
If you can rid yourself of margins do it! However, often you'll want the margins. In this case, wrap the whole thing in a container div and set margins to 0 with width at 100%.
如果你能摆脱边缘,那就去做吧!但是,通常您会想要边距。在这种情况下,将整个内容包装在容器 div 中,并将边距设置为 0,宽度为 100%。