关于宽度100% 出现横向滚动条的问题 以及注意您的显示器...

在解决一道CSS布局题目时,遇到了宽度设置为100%后出现横向滚动条的问题。经过分析,发现是IE盒模型与margin的结合导致宽度超出显示器实际宽度。尝试去掉margin并调整定位属性,但问题未完全解决。进一步研究发现,left和right在百分比布局中也会占据屏幕空间。最终通过去除width属性解决了滚动条问题,但显示器的黑边造成了一侧内容显示不全的误解。这个问题提醒我们在布局时要考虑浏览器兼容性和显示器差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在做题的时候遇到这样一道题:


看一下感觉不难,然后就撸起来了。大体采用绝对定位,ie的盒模型(比标准盒模型好酸多了),感觉应该没啥问题的,走你->

主体代码是这样的:

<style type="text/css">
	*{
	    margin: 0;
	    padding: 0;
	}
        html,body{
        	height: 100%;
        } 
        header{
		border:1px green solid;
        	box-sizing: border-box;
        	height: 120px;
        	left: 0px;
        	margin: 10px;
		padding: 10px;
        	position: absolute;
        	top: 0px;
		width: 100%;
        }
        header #logo{
        	border: 1px red solid;
        	float: left;
        	height: 96px;
        	width: 96px;
        }
        header #user{
		border: 1px black solid;
		float: right;
		height: 23px;
		margin-top: 75px;
		width: 200px;
        }
        header #user span{
        	color: black;
        	font-size: 20px;
        	line-height: 23px;
        	text-align: right;
        }

        aside{
		position: absolute;
		right: 10px;
		top: 120px;
		width: 200px;
        }

        #content{
        	border: 1px purple solid;
        	bottom: 40px;
        	box-sizing: border-box;
        	left: 10px;
        	position: absolute;
        	right: 220px;
        	top: 140px;
        }

        footer{
        	border: 1px black solid;
        	bottom: 0px;
        	box-sizing: border-box;
        	height: 25px;
        	left: 0px;
        	margin: 10px;
        	position: absolute;
        	width: 100%;
        }
    </style>
</head>
<body>
    <header>
    	<div id="logo"></div>
    	<div id="user">
    		<span>用户名</span>
    	</div>
    </header>

    <div id="content"></div>

    <aside></aside>
    
    <footer></footer>
</body>

what???怎么是这个鬼样,下面怎么多了个滚动条啊??还有右边的margin呢???


真是淡淡的忧伤,想了下,盒子那些都算计好了的啊,不应该啊,咦,下面那个-20是什么情况(取的是header标签):


我量了下显示器的显示区域宽度和content+margin的宽比较了下,刚好少了20px,难怪右边没有显示全,突然发现自己脑残了,把width射程100%,又还是ie的盒模型,还设置了margin,自己作,好吧ie盒模型width是不包括margin的,所以这里最后的宽度是100%+20px,当然就唧唧了。那就改改。就不贴代码了,就是去掉margin,并将对应的top,bottom,left,right做修改。


结果,好像没有变化啊。。。只是上面的-20就没有了。。。但效果还是老样子,熟悉的滚动条,看不完的右边。。。真是万千草泥马奔涌,思来想去不得姐,问问度娘,寻思着张鑫旭大神说不定遇到过,但没找到,网上的说法是还是和那个width:100%有关,说把百分比调小一点就好,当然这样可以,但是调小多少不精确,收缩窗口会影响效果,我是有点强迫症的。难道left,right和margin一样都是width之外的东西,并且还是从左到右占着屏幕位置,再次测量确实是这样子的。


那好办,我们就不用width百分比了,不是已经用绝对定位了吗,而且left,right俱在,直接把width去掉


效果很好,滚动条没有了,等等,右边为什么还是少了点,我就不卖管子了,这里是个巨坑,我纠结了将近半个小时,原来是我这显示器的大黑边害的,右边的内容盖在黑边下,我就奇了怪了,咋左边不盖呢,反正就是这样了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值