html让文本框左剧中对齐_HTML & CSS页面布局之定位

本文详细介绍了HTML和CSS中的三种布局模式:标准流、浮动流和定位流,重点讲解了浮动和定位的概念、特点及应用。讨论了如何通过定位属性实现元素的左对齐、居中等布局,并探讨了清除浮动影响的方法。此外,还涉及到了CSS中的z-index属性和flex弹性布局,以及两列、三列布局的实现技巧。
摘要由CSDN通过智能技术生成

6e3c9fd9ed04bec10487b20645bfc4db.gif

我们在编写网页代码时,首先应该做的就是设计好页面的布局形式,然后再往里面填充内容。网页布局的好与坏,直接决定了网页最终的展示效果。这里总结一下 WEB前端CSS部分的定位问题,同时这些问题也是对一些基础的技术概念和思想的理解。对这些基本知识的掌握程度和深度决定了你的技术层级。

文档流

文档流就是HTML文档内所有元素按照一定规律排列并显示的形式。

CSS文档流大致可以分为3种:标准流,浮动流,定位流。

1,标准流

默认情况下,HTML元素都在标准流中呈现和展示。我们之前把元素分为块级元素,行内元素,行内块级元素,他们的特性是块级独占一行,行内和行内块级可以在一行内共存,这些特性都是针对标准流的。总结一下就是,标准流中元素只能在水平或垂直方向上排版。如果元素是块级元素, 那么就会垂直排版,如果元素是行内元素/行内块级元素, 那么就会水平排版。

2,浮动流

浮动流只有一种排版方式, 就是水平排版。它只能设置某个元素在父元素内左对齐或者右对齐。设置了浮动的元素,将脱离标准流,之后它将无视元素的display属性,并且都被当做块级元素处理。

div{
    float:left;/*规定元素向左浮动*/ /*float:right;规定元素向右浮动*/ }

请注意,浮动float属性没有center取值,并且,如果设置了浮动属性,那么你将不能通过使用margin:0 auto;属性使元素居中。

3,定位流

标准流和浮动流都只能在水平或垂直方向布局元素,但现实是,我们可能需要在上下左右几个方向上同时偏移元素,定位流正是为了解决这一问题而设计的。通过设置元素的position属性,可以让元素处于定位流中,并通过left、right、top、bottom属性设置元素具体的偏移量。

定位流分为四种:

a) static 静态定位,实际上所有元素默认都是静态定位的,即处于标准流中。

b) relative 相对定位,元素保留在标准流中所占用的位置,但实际是边框及以内的部分将显示在偏移之后的位置。即虽然元素已经不再原来的位置了,但之前所占用的空间并不会被释放给其他标准流中的元素。

c) absolute 绝对定位,元素脱离标准流,浏览器把它视作块级元素,不论定位之前它是何种元素,其他元素也将无视它。绝对定位的偏移量是相对于其有定位属性的第一个祖先元素的。

d) fixed 固定定位,固定定位和绝对定位相似,但它的偏移量固定的相对于浏览器窗口。

浮动

当某个元素浮动之后,相当于从标准流中删除了该元素,标准流中的元素将会无视浮动元素,并且可能被浮动元素覆盖。

当有多个元素浮动时,他们有以下特点:

a) 在相同方向上浮动的元素,先浮动的元素会显示在前面。

 .brother1{
     float:left; } .brother2{
    float:left;}/*brother1将显示在brother2的左边,如果都设置右浮动,那么brother1将显示在brother2的右边*/

b) 不同方向的浮动元素,会尽量去寻找并贴靠前面和它浮动方向相同的元素。如果前面没有其他浮动元素,那么它将紧贴其父元素的边界。

 .son1{
    float:left;} .son2{
     float:right; } .son3{
    float:left;} /*son1和son3会在父元素的左侧显示,并且son3紧跟在son1的后面。son2则在父元素的右侧显示,紧贴父元素上*/

c) 如果有未浮动的兄弟元素,那么元素在浮动之后,会根据它在标准流中的位置确定该在第几行展示。

.brother1{
       background-color:red;  float:left; }.brother2{
        background-color:blue; } .brother3{
       background-color:yellow;   float:left; } /*最终效果是:brother1和brother2在第一行显示,但brother1盖住了brother2,brother3单独在第二行显示*/

浮动元素还有一个特点:浮动元素不会挡住没有浮动元素中的文字, 没有浮动的文字会自动给浮动的元素让位置。这才是设计浮动的初衷。

元素浮动后会带来两个问题,第一个是造成父元素的高度塌陷,padding和margin无效。第二个是被其他元素无视,出现元素相互覆盖的现象。那么要怎样才能消除浮动对其他元素的影响呢?我们通过下面的方式清除浮动带来的影响。

a) 为父元素设置固定的高度(解决问题一)。

father{
     heigth:100px; } son{
      float:left;}

b) 为父元素设置浮动(解决问题一)。

father{
        float:left;} son{
        float:left; }

c) 设置clear属性。clear属性的功能是使浮动元素不去寻找相邻的其他浮动元素,从而消除浮动元素对其他元素的影响(解决问题二)。

father::after{
    content:'';display:block;height:0;clear:both; }  /*俗称隔墙法,根据需要也可以设置在浮动元素自身或其父元素上*/  son{
      float:left;  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值