作者:hacker发布时间:2022-07-15分类:黑客教程浏览:99评论:2
我们先看一下position属性的几个取值定义:
position: static、absolute、relative
static : 默认值。如果没有指定position属性,支持position属性的html对象都是默认为static,可以这么理解:把html页面看作一个文档流,源代码中各个标签的先后位置就是它们所对应的对象的呈现次序,所有取值为static的对象都按照你所编写的html标签的顺序依次呈现。
如下图所示,这是一个常见的指定了float:left;的横向导航:
relative: 相对定位。这个属性值保持对象所在文档流中的位置,也就是说它具有和static相同的呈现方式,它同样占有在文档流中的固定位置,后面的对象不会侵占或覆盖;与static属性值不同的是,设置了relative的对象,可以通过top, left, right, bottom属性设定自己的新显示位置,这4个属性的取值是相对于文档流的前一个对象的,你可以自由设置这4个属性偏移到新的位置而不对文档流中的其他对象产生任何影响,原来的页面呈现仍然会我行我素:
absolute: 绝对定位。和relative不同的是,这个属性值会将当前对象拖出文档流,后面的对象会占有原来的位置,也就是说,当前对象的呈现是独立显示的,但是它的位置在指定top, left, right, bottom任一属性之前仍是有继承性的,这时的4个属性的取值是相对于浏览器的,和文档流无关了。如果把示例中的B区域设定为absolute而不指定 4个位置属性,通过设定margin来改变它的相对位置,用这个方法可以解决前面提到的问题2。
提示a: 苏昱的css2.0手册中提到relative和absolute定位的滚动条区别不是绝对的,至少在firefox、opera和safari中滚动条该出现还是会出现。
提示b: 属性值为absolute对象的z-index属性可以设置层叠显示的次序,它是直接有效的;
而属性值为relative对象的z-index属性在设置时要小心,把当前对象的z-index设置为-1是不行的,在firefox中它会无法显示,必须设置为0以上,我们如果想让别的对象挡住它,只有将其他对象也设置position为relative,并将z-index属性取一个比它大的值即可。
上面的表述不知道也许不是很清晰,具体的理解还是要自己亲自动手操作一下。
这样看来,前面的问题就有解了,问题3我们可以根据设计的要求将其设置为相对或绝对定位;
问题1的解决方法也有很多,个人推荐使用有语义的dl, dt, dd来实现,而且这个方法在不同浏览器中的表现基本相同(已在ie, firefox, opera, safari中测试),仅在top的属性上有几像素的差异,由于时间关系我只能给出自己测试时的代码以供参考:
body {
color:#fff;
font-size:12px;
}
ul li {
float:left;
height:30px;
background-color:#99CC99;
margin:0 10px;
padding:0;
border:1px solid #c30;
width:100px;
}
ul li div {
border:1px solid #f00;
background-color:#996666;
width:100px;
height:100px;
position:absolute;
margin-top:15px;
margin-left:-1px;
*margin-left:-79px;
}
ul li dl,
ul li dl dt,
ul li dl dd {
margin:0;
padding:0;
}
ul li dl dd {
border:1px solid #f00;
background-color:#996666;
width:100px;
height:100px;
position:absolute;
margin-top:11px;
*margin-top:10px;
margin-left:-1px;
}
ul
li
标题 - #text
div
下拉菜单 - div
/div
/li
li style="position:relative;"列表b/li
li列表c/li
li
dl
dt标题 - dt/dt
dd下拉菜单 - dd/dd
/dl
/li
/ul
对于#ad_headerbanner它的定位是:
div id="ad_headerbanner"div
对于.ad_headerbanner img
div class="67e3-f965-d86a-82ec ad_headerbanner"img src="1.jpg"/div
就是id用# ,class用点.空一格的img 表示包含在其中
======================================
div class="f965-d86a-82ec-32b8 ad_headerbanner"这里插入想插入的内容div
你要想插入内容的话,就不应该用css了,你应该用javascript,documen.ad_headerbanner.innerHtml=''
样式右侧那个就是 css样式的文件和目录,点击就会在浏览器跳到css文件。
得看编辑器,有的编辑器,像hbuilder 直接按住alt键点击类名就直接跳转到css中制定位置
1、在浏览器中打开要调试的网页,使用快捷键F12。
2、在弹出的工具窗口中,默认是在Dom Explorer功能,列出网页的源代码和CSS样式列表。
3、使用元素定位功能选择页面中的一个元素同时也定位到源代码中位置,比如百度首页的"网页"元素。
4、对定位到的文字修改CSS样式,添加inline style,比如把字体变红色。也可以手工修改其他已经存在的样式。
5、查看元素已经应到到的CSS样式,点击"computed"菜单。
6、查看元素的布局信息,点击"Layout"菜单。
标签:定位源码内对应css位置
已有2位网友发表了看法:
访客 评论于 2022-07-15 15:09:03 回复
,它同样占有在文档流中的固定位置,后面的对象不会侵占或覆盖;与static属性值不同的是,设置了relative的对象,可以通过top, left, right, bottom属性设定自己的新显示位置,这4个属性的取值是相对于文档流的前一个对象的,你可以自由设置这4个属性
访客 评论于 2022-07-15 23:59:24 回复
目录:1、关于css与div元素定位的问题2、css定位代码定位3、css如何定位代码在哪个文件?4、在htmel文件中怎么找到对应的.css中的对应位置5、怎样在F12下查看源码和调试网页CSS关于css与div元素定位的问题我们先看一下position属性的几个取值定义:positio