搜索
您的当前位置:首页正文

HTML元素大小和位置相对于谁的问题_html/css_WEB-ITnose

2023-11-28 来源:软文情感网

一、如果元素的position属性值为absolute,那么此时分为两种情况:

1. 父级(包括直接父级和间接父级)元素中没有定义position属性(即默认属性static),那么该元素会参照页面,以页面为基准进行定位,top, left等属性会参照页面。

如果该元素的width和height属性是百分数的话,那么这两个属性也是参照页面的宽度和高度。

 

以上代码中,div2是绝对定位,而其父级元素没有设置position属性,那么该元素就会以页面为参照进行定位。

从图中可以看到,div2是相对于页面定位的,而且其宽度和高度是页面宽高的一半。

从控制台可以看到,页面的宽度和高度正好是div2元素的2倍。

2. 父级元素定义了position属性(relative或absolute),则会参照父级元素。

 div1 div2

从图中可以看到,div2是相对于div1定位的,宽度和高度也是相对于div1

二、如果元素的position属性值为relative,那么该元素相对于其正常位置(即position:static)定位。

默认情况下宽度会占满父容器,高度根据本身内容决定。当是父元素的第一个子元素时,位置会在父元素的左上角。

那么设置其位置和大小就会以自己为参照,height的情况特殊,当设置height时,会以充满父容器的状态为参照。

 

小编还为您整理了以下内容,可能对您也有帮助:

html代码编写过程中的几个警惕点_html/css_WEB-ITnose

本文想说的警惕点与浏览器兼容无关,主要是几个本人在项目中遇到的几个小问题的总结,问题虽小,但是却有时很困扰人,在此记录一下,如果后期有此类问题会持续添加到这里。

1.内联标签之间的空格

正常情况下书写html代码的时候都有换行、缩进等习惯,比如

html,body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td{ margin: 0; padding:0; } #myDIV { width: 200px; height: 200px; background-color: #ff0; } #myDIV > div{ width: 50px; height: 50px; display: inline-block; background-color: #f00; } div1 div2

显示效果为

中间有一个空白。原因是如果两个内联标签(或者设置display:inline或inline-block)之间有连续的空格符、回车符、换行符,则会这些符号会被默认处理为一个空格符号。

比如我们在两个div标签之内加入" ddd dd d ",效果如下,无论有多少个相连的空白符号,最终呈现的效果都只有一个空格符

这个和在内联元素中直接写入字符类似

但是内联元素会去掉头部和尾部的空白字符。

所以需要提示的是:

内联元素排列时如果需要避免标签之间的空白则需要使标签紧密相连。

内联元素要填写内容时尽量使用.innerText或.textContent(Firefox不支持innerText,但是支持该属性)。

非要在html代码中写入空白,请使用html的空格表示方法

说道这里,我想有些人对内联元素理解有偏差。所谓内联是和所谓的“块”对立的。内联元素不成块的,感觉就像水流一样,遇到阻碍就环绕而行。比如源码

div1 ddd dd d div2 d dd d

显示效果

span里面的内容被分成了两段,不是一个完整的块了。

2.body标签默认的margin边框

这个没有什么说的,现代浏览器(支持CSS3)和IE8的body都默认了一个css样式margin:8px。其他有的标签也是有这样的,这里不举例了。很多时候我们都不需要,需要一般的项目样式开头都有一个类似的设置。

html,body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td{ margin: 0; padding:0; }

3.特殊空白字符导致显示异常

举个例子,下面的源码中看似没有问题

html,body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td{ margin: 0; padding:0; } *{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } #myDIV { width: 200px; height: 40px; background-color: #ff0; } #myDIV a{ float: left; width: 200px; background-color: #f00; } test0

实际上a标签前面的有一个非正常的的空白字符,显示效果如下

a的宽度和#myDIV的宽度应该是相同的,且a是浮动,显示效果却换行了,这也太让人抓狂了,有么有。

正常的显示效果是

我们来看一下这个非正常的空白是啥。

第一个是非正常的空格,其URI组件编码为"%E3%80%80"

第二个是正常的空格,其URI组件编码为"%20"

第三个是正常的Tab建,其URI组件编码为"%20%20%20%20",实际上就是4个空格。

看出来了吧。所以有的时候再网站中拷贝的代码运行效果异常可能就是这个原因导致的。

未完待续,后期如果想到其他的点补上。也希望童鞋们提一些相关的点,本人一定补上。

如果觉得本文不错,请点击右下方【推荐】!

HTML和CSS的关系

一、css是Cascading Style Sheets 的缩写,即层叠式样式表单,它是由W3C协会制定并发布的一个网页排版式标准,是对HTML语言功能的补充。

二、HTML和CSS的区别?

1、定义不同:

html是HyperTextMark-upLanguage的缩写,即超文本标记语言;

css是Cascading Style Sheets 的缩写,即层叠式样式表单,它是由W3C协会制定并发布的一个网页排版式标准,是对HTML语言功能的补充。

2、用途不同:

html则是用于文本内容,包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。

css是多用于样式,主要的用途是对网页中字体、颜色、背景、图像及其他各种元素的控制,使网页能够完全按照设计者的要求来显示。

3、CSS语法与HTML语法完全不同:

HTML里代码是功能标签,如DIV、SPAN、A链接、em标签、I斜体标签、u下划线等,html代码语法范例:<div>内容</div>

CSS样式代码语法是div{样式单词:值}

三、HTML和CSS联系:

CSS与HTML相同之处在于,两个共同作用让网页实现需要的布局样式。

扩展资料:

1、标记符<html>,说明该文件是用超文本标记语言(本标签的中文全称)来描述的,它是文件的开头;而</html>,则表示该文件的结尾,它们是超文本标记语言文件的开始标记和结尾标记。

2、CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。

CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。

页面元素居中的几种方法_html/css_WEB-ITnose

1前言 做页面布局时,经常会需要将一些页面元素居中显示。当然,你可以设定元素的top、left来使它居中,但是,当父容器的大小发生变化,你不得不修改子元素的top、left来使它保持居中;当用户的显示器分辨率与你的测试机不同,可能会导致界面乱成一片,所以不管从代码的易维护性的角度还是从对不同分辨率显示器的适应性方面来说,这种设置固定值的方法显然是比较拙劣的。因此,做页面布局,应尽量减少使用固定值的布局方式。下面介绍几种页元素居中的方法。

1Div居中 1.1左右居中 在父窗口中设置text-align:center,要注意的是,此方法只对内联元素起作用,所以要在居中的div中设置display:inline-block。以下代码中红线部分表示了如何让3个div在itemContainer中居中显示。

如果是单个元素居中,也可以用margin:0auto,但此方法不能使多个元素在父窗口中居中。

1.2上下居中 text-align属性只能设置左右居中,上下居中可以采用如下方法:top:50%;margin-top:-40px。top:50%设置div顶部位于父容器高度50%的地方,但是div本身有高度,margin-top:-40px表示上移div自身高度的一半。要注意的是父容器要设置overflow:auto,否则以上设置会影响父容器的大小。

如果需要上下左右同时居中,则与2.1所示方法结合使用。

以下代码中红线部分表示了如何使itemContainer在整个页面中居中显示。

2文本居中 方法一:把文本放在div标签中,然后按照div居中的方法设置居中

方法二:左右居中text-align:center,上下居中可以设置在文本的父容器中设置line-height等于父容器高度,如以下代码所示。

3背景图片居中 设置background: 50% 50%,可调整这两个参数使用仅上下居中(background: 0% 50%)和仅左右居中(background: 50% 0%)。

4测试用例 .item{background:url("pic.png")no-repeat 50% 50%;position:relative;display:inline-block;width:80px;height:80px;outline:solid2px #000000;;line-height:80px}

style="position:relative;width:400px;height:80px;outline:solid 2px#ff0000;text-align:center;top:50%;margin:0 auto;margin-top:-40px">

测试

测试

测试

CSS之旅(1):为什么要用CSS_html/css_WEB-ITnose

原文出处: 一线码农不知道有多少码农和我一样,css一直是一个软肋,软到全身酥麻。。既然软肋来了,只能是要想办法解决,所以就找本CSS权威指南看一看,都说CSS权威指南这本书比较过时,但是内容还是比较充实的,而且内容基本上就是和你交谈一样,非常舒服,好了,下面从正文说起。

一:为啥要学习CSS

当你知道CSS的历史还是蛮有味道的,在很久很久以前,web上没有css,只有一些html的标签,比如p,h1?h5? div span,ul 等等,这些html标记

都是一个具有特定含义的html标签,过去人很实在,不讲究排版,只要内容是干货就好了,就比如现在的博客园排版,简洁美,我们这些码农同样也不在乎这

个,只要文章是干货就好,但是呢?web用户不是程序员,他们才不讲究干货不干货,他们讲究外表,讲究炫酷,讲究如何的个性,这样的话Html就扛不住了,

W3C组织就为了满足这些人的胃口,提供了一些装饰html标记的标记,比如strong,font,b,u等等。。就比如下面这样。

你好

然后的然后,程序员就有了下面这样的抱怨了。。

第一: 老子为了decorate个text,要写无数个标签,我操。。多麻烦。。

第二:马丹,现在我们的页面结构开始越来越复杂,这些几把font, b压根就不能重用,根本就是完蛋的东西。。高个毛啊。。

第三:现在国家这么穷,带宽这么贵,我的html体积真tmd的大,内容其实仅仅占不到html的1/10。。我的客户有时候要几分钟才能打开。。这样下去,

我要失业了。

结果就这样W3C招致网上程序员的骂声一片,原本的想法就是想通过一些样式的html标记来修饰html的结构内容,结果导致现在的一片混乱,而且页面结构失

衡。。面对三大问题,W3C就开始推出了CSS,这个装修Html的层叠样式表。彻底的解决了程序员提出的三大难题。。

二:如何解决三大难题

1. 无数个标签的问题

css采用一条条规则来decorate各个html的结构元素,规则的结构采用 “标签+内容声明” 的方式,比如:

p { font-size: 20px; color: red; margin: auto 0; width: 50%; }

这种定义我想没什么好说的,这样的话,我们把html中的装饰标签全部拿出来了,放到一个专门的css规则中,这样的好处大家也看到了,”内容“和”展示”的分离,

这样的话就解决了程序员们的第一个抱怨。

2. 装饰标签的重用问题。

确实,原始的html装饰标签无法做到重用,这样的话自然就会导致页面膨胀,css就采用了规则组来解决这个问题,先把规则写好,然后哪个标签想用的话,自己套用

下已设定的css定义就可以了。这样的话也就解决了重用的问题。

3. 体积膨胀的问题

如果第一,第二个问题没有解决好,第三个问题自然会发生,而且我想还有其他一连串的连锁反映,那么css都采取了哪些手段来解决的,为了突出css的终极目标,必须

严格的做到“内容”和“展现”的分离,要做到“分离”,那就必须将css单独的封装到一个专门的css文件,这样的话,就不光可以做到单个html页面的标签重用,甚至可以多页

面重用,多站点重用。那下一个问题就来了,引用css文件的方式有哪些??? 哪些是不值得提倡的?

三:css文件的引用方式

1. link引用

当你把css拖入到vs的时候,默认就是link模式,link它本来就是xhtml的一个标签,所以我们还可以用js来动态追加和控制,这个我想大家都清楚,还有一点好玩的地方就

是可以做“候选样式表”,在浏览器中可以动态选择自己想要的样式,比如下面我定义了两个css文件,分别让页面展示 red 和 blue 的背景。

然后我们可以在浏览器中可以动态切换我想要的css样式,蛮有意思的,虽然这种作用相对比较少见,由于截图不好截,大家可以使用 工具栏中的 ”查看“=> “样式”。

2.import引用

同样这个标记也可以导入,就像下面这样。

@import url(blue.css)hello world;

最后值得一提的是,尽量避免使用“内联样式”的style,如果这样的话,跟使用font,strong这样的标记几乎没有什么区别,就比如下面这样,所以我们尽量避免。

hello world;

好了,第一篇大概就这么说了,后续的我们再延伸,周末愉快。

软文情感网还为您提供以下相关内容希望对您有帮助:

普通文档流(标准流)下,块元素和内联元素的位置是怎么决定的?

在普通文档流(标准流)下,块元素和内联元素的位置是由CSS布局规则和HTML标记的嵌套结构共同决定的。块元素在默认情况下会占据整个可用宽度,每个块元素都会被排列在前一个块元素下方。内联元素则会根据内容的大小自适应宽度,...

HTML里面的相对定位的问题

说明你对相对定位还不不是很了解,针对相对定位来说明, top:10px;代表原来位置向下移动10px; left:10px;代表原来位置向右移动10px; right:10px;代表原来位置向左移动10px; bottom:10px;代表原来位置向上移动10px;...

html代码编写过程中的几个警惕点_html/css_WEB-ITnose

1.内联标签之间的空格正常情况下书写html代码的时候都有换行、缩进等习惯,比如html,body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, te...

HTML和CSS的关系

1、定义不同:html是HyperTextMark-upLanguage的缩写,即超文本标记语言;css是Cascading Style Sheets 的缩写,即层叠式样式表单,它是由W3C协会制定并发布的一个网页排版式标准,是对HTML语言功能的补充。2、用途不同:html则...

页面元素居中的几种方法_html/css_WEB-ITnose

1Div居中 1.1左右居中 在父窗口中设置text-align:center,要注意的是,此方法只对内联元素起作用,所以要在居中的div中设置display:inline-block。以下代码中红线部分表示了如何让3个div在itemContainer中居中显示。 如果是单...

关于HTML5 a标签的位置问题?

1、应该用一个外层盒子来定位,这样盒子内的各个元素的相对位置不会受影响;2、如果一定要在子元素上定位,那也应该错开位置,否则肯定挤在一起的,因为都定位到同一位置了;3、a标签不应该包含li标签,而应该是li标签包含...

CSS之旅(1):为什么要用CSS_html/css_WEB-ITnose

一:为啥要学习CSS 当你知道CSS的历史还是蛮有味道的,在很久很久以前,web上没有css,只有一些html的标签,比如p,h1?h5? div span,ul 等等,这些html标记 都是一个具有特定含义的html标签,过去人很实在,不讲究排版...

...布局时需要知道的几个技巧_html/css_WEB-ITnose

如果您有用到margin,那么很容易产生边界的重合; 4.尝试避免同时对元素指定padding/border以及高度或宽度 Windows版IE经常导致width与height的计算问题。有些方法可以解决此问题,但如果母元素需要指定高度与宽度时,最好能够在...

HTML里面有几种布局方式?

相对定位和绝对定位都是相对于父div标签的。相对---以这个元素的本来应该在的位置为参照点 绝对——以父div标签的原点(左上角)为参照点。由于外层是position:relative,所以里层是absolute的话,则会以外层的左上角为位移...

HTML+CSS中关于绝对定位和相对定位定位的优缺点以及该注意的地方,现在...

这个块就可以以父元素所在的位置左上角作为基准来进行定位,而不再是以&lt;body&gt;的左上角作为依据了。以父元素的左上角来做基准是不是方便多了。相对定位本身用的比较少,一般都和绝对定位配合用,具体可以去了解下 ...

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

热门图文

  • 读《杜工部集》二首的全文 读《杜工部集》二首的全文是什么

    《读《杜工部集》二首》贯休全文:造化拾无遗,唯应杜甫诗。岂非玄域橐,夺得古人旗。日月精华薄,山川气概卑。古今吟不尽,惆怅不同时。甫也道亦丧,孤身出蜀城。彩毫终不撅,白雪更能轻。命薄相如命,名齐李白名。不知耒阳令,何以葬先生。

  • 读《杜工部集》二首的全文是什么

    《读《杜工部集》二首》贯休全文:造化拾无遗,唯应杜甫诗。岂非玄域橐,夺得古人旗。日月精华薄,山川气概卑。古今吟不尽,惆怅不同时。甫也道亦丧,孤身出蜀城。彩毫终不撅,白雪更能轻。命薄相如命,名齐李白名。不知耒阳令,何以葬先生。

  • 读《杜工部集》二首的全文

    《读《杜工部集》二首》贯休全文:造化拾无遗,唯应杜甫诗。岂非玄域橐,夺得古人旗。日月精华薄,山川气概卑。古今吟不尽,惆怅不同时。甫也道亦丧,孤身出蜀城。彩毫终不撅,白雪更能轻。命薄相如命,名齐李白名。不知耒阳令,何以葬先生。

  • 读《杜工部集》二首全文

    《读《杜工部集》二首》贯休全文:造化拾无遗,唯应杜甫诗。岂非玄域橐,夺得古人旗。日月精华薄,山川气概卑。古今吟不尽,惆怅不同时。甫也道亦丧,孤身出蜀城。彩毫终不撅,白雪更能轻。命薄相如命,名齐李白名。不知耒阳令,何以葬先生。

  • 读《杜工部集》二首的朝代是什么

    《读《杜工部集》二首》贯休朝代:唐代

Top