div+css如何让页面随着窗口的变化内容位置不变

4 篇文章 0 订阅
2 篇文章 0 订阅
<span style="font-size:24px;color:#000000;">有时候层div内元素会随着浏览器的缩放大小改变,内容位置会上下左右变化,其实是因为我们的边距设置问题。为了不让层div内容随着浏览器缩放而变化,我们应该设置最外层div的margin,比如左边距margin-left为一个具体的值px,而不能设置为百分比%,因为百分比是按浏览器的大小或者说父元素的大小来改变距离的,浏览器绽放影响了父元素的大小,因为div里面的内容形式会改变,下面用了一个很简单的例子演示了一下,我也是初学,做网页的时候碰到了,自己研究了一下<img alt="吐舌头" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/tongue.gif" />。</span>
<span style="font-size:24px;color:#ff0000;">
</span>
<span style="font-size:24px;color:#ff0000;">你们可以将代码复制过去自己对比演示一下</span>
<span style="font-size:24px;color:#ff0000;">边距设置为百分比的时候的图对比展示,我改变的是div11,你们最好改变一下div21,div22,div23</span>
</pre><pre class="html" name="code"><span style="font-size:24px;color:#ff0000;">边距分别设置为百分比、具体值px时候的图例对比展示</span>
<span style="font-size:24px;color:#ff0000;"><img src="https://img-blog.csdn.net/20150430160046561?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg2OTc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20150430160144125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg2OTc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20150430160144125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg2OTc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20150430160144125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg2OTc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20150430160246322?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg2OTc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span>
<img src="https://img-blog.csdn.net/20150430155826192?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg2OTc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
</pre><pre class="html" name="code">
</pre><pre class="html" name="code">
</pre><pre class="html" name="code">
源码:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>test div</title>
</head>

		<style>

		body{
			width: 100% auto;
			margin:0;
		}
		#div1{
			background-color: grey;
			width: 100% auto;
			height: 800px;
		}

		#div11{
			margin-left: 100px;
			float: left;
			border: solid 1px; 
			height: 50px;
			width: 50px;
		}

		#div12{
			margin-left: 400px;
			border: solid 1px; 
			height: 250px;
			width: 350px;
		}

				#div21{
			margin-left: 10%;
			float: left;
			/*clear: both;*/
			border: solid 1px; 
			height: 50px;
			width: 50px;
		}

				#div22{
			margin-left: 10%;
			float: left;
			border: solid 1px; 
			height: 50px;
			width: 50px;
		}

						#div23{
			margin-left: 10%;
			float: left;
			clear: both;
			border: solid 1px; 
			height: 50px;
			width: 50px;
		}

			#div24{
			margin-left:10%;
			float: left;
			border: solid 1px; 
			height: 50px;
			width: 50px;
		}

		#div13{
			margin-left: 100px;
			border: solid 1px;
			width: 100% auto;
			height: 40px;
		}
		</style>


<body>

	<div id="div1">
		<div id="div11">div11</div>
		<div id="div12">
			<div id="div21">div21</div>
			<div id="div22">div22</div>
			<div id="div23">div23</div>
			<div id="div24">div24</div>
		</div>
		<div id="div13">div13</div>
	</div>


	
</body>
</html>

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
div的position属性详细讲解 1.流动模型 (块元素,内联元素) 2.浮动模型 (float:) 块状元素这么霸道都是独占一行,如果现在我们想让两个块状元素并排显示,怎么办呢?不要着急,设置元素浮动就可以实现这一愿望。 3.层模型--绝对定位 如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口。 如下面代码可以实现div元素相对于浏览器窗口向右移动100px,向下移动50px。 div{ width:200px; height:200px; border:2px red solid; position:absolute; left:100px; top:50px; } 效果如下: 层模型--相对定位 如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。 如下代码实现相对于以前位置向下移动50px,向右移动100px; #div1{ width:200px; height:200px; border:2px red solid; position:relative; left:100px; top:50px; } 效果图: 层模型--固定定位 fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。以下代码可以实现相对于浏览器视图向右移动100px,向下移动50px。并且拖动滚动条时位置固定不变。 效果见代码::: relative样式 #div1{ width:300px; height:200px; border:2px red italic; position:fixed; bottom:0; right:0; 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。 Relative与Absolute组合使用 小伙伴们学习了12-6小节的绝对定位的方法:使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后,大家有没有想过可不可以相对于其它元素进行定位呢?答案是肯定的,当然可以。使用position:relative来帮忙,但是必须遵守下面规范: 1、参照定位的元素必须是相对定位元素的前辈元素: 相对参照元素进行定位 从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。 2、参照定位的元素必须加入position:relative; #box1{ width:200px; height:200px; position:relative; } 3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。 #box2{ position:absolute; top:20px; left:30px; } 这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。
如果你想在 HTML 页面上滚动时让某个 `div` 的位置悬浮不变,可以使用 CSS 中的 `position: fixed;` 属性来实现。这个属性会让元素的位置相对于浏览器窗口固定不变,而不是相对于文档流的位置。 下面是一个示例代码,展示如何使用 `position: fixed;` 来让一个 `div` 的位置悬浮不变: ```html <!DOCTYPE html> <html> <head> <style> #fixed-div { position: fixed; top: 10px; right: 10px; width: 200px; height: 100px; background-color: lightblue; } </style> </head> <body> <div id="fixed-div"> 这个 div位置会在页面滚动时悬浮不变。 </div> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut nunc rhoncus, viverra mauris eu, cursus ipsum. Nam eu sodales mauris. Maecenas at sodales ipsum. Sed ut eros vel diam consequat commodo. Ut elit velit, congue eget orci nec, pharetra hendrerit elit. Ut bibendum convallis nisi, sit amet finibus ex bibendum a. Nulla facilisi. Aenean euismod enim vel risus imperdiet euismod. Curabitur euismod tincidunt neque, nec elementum lorem. </p> <p> Mauris eget massa enim. Nullam at tellus vel ex sagittis suscipit. Sed nec tellus eu quam lobortis dignissim. Morbi eget diam id felis semper semper. Nunc pulvinar, nunc quis interdum suscipit, nisl quam accumsan enim, ut viverra magna libero in sapien. Fusce aliquam vestibulum orci, id tempor lorem viverra eu. Proin interdum, mauris vitae faucibus malesuada, augue nibh feugiat tellus, sed varius purus arcu vel turpis. Sed eget ante quis felis lacinia commodo. </p> <p> Integer et magna at orci bibendum efficitur. Suspendisse iaculis congue justo, vel rutrum enim fringilla eu. Fusce pellentesque euismod lorem, eu scelerisque purus malesuada vel. Sed sit amet nisi dignissim, lacinia mauris nec, varius elit. Nulla facilisi. Etiam maximus, velit vel rhoncus consequat, ex arcu imperdiet arcu, eu bibendum nulla metus vel orci. Maecenas bibendum, mauris eget rutrum egestas, mi odio tempus nisi, ac viverra purus sem id velit. </p> </body> </html> ``` 在上面的代码中,我们创建了一个 `div` 元素,并把它的 `position` 属性设置为 `fixed`,这样它的位置就会固定在浏览器窗口的右上角。在这个例子中,我们还设置了 `top` 和 `right` 属性来调整 `div` 元素的位置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值