CSS行内块级元素布局与定位

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

1.行内块级元素布局

上一节里面我们讲到了float浮动布局以及它的一些使用方法,在这一节里会将到行内块级元素布局的方法。

html的元素最开始是只有行内元素和块级元素两种,大多数元素都是块级元素,其特点是独占一行,会尽量占满浏览器的宽度。

但这两种元素在布局上比较无力,因此人们开始利用float浮动,这一最开始用于文字环绕的属性来进行布局。

这样的布局方式时至今日依然有不少的使用场景,但它的缺点也是非常明显的,它破坏了文档流造成高度塌陷,是一种hack的方式。

那么我们还有没有其他的方法来完成布局呢?

答案当然是有的,行内块级元素inline-block。

当为元素设置display为inline-block时,该元素就成为一个行内块级元素,既可以在一行内放置多个这样的元素,又可以为它设置宽高内外边距等属性。

比如当我们要完成九宫格布局的代码是这样的:

<style media="screen">

body {

margin: 0;

font-size: 0;

}

div {

display: inline-block;

background-color: orange;

border-radius: 5px;

width: 30vw;

height: 30vw;

margin: 1.5vw 0 0 1.5vw;

}

</style>

</head>

<body>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

</body>

这样的布局方式也是会有一些去诶按的,比如IE6,7上支持会有一些问题。

解决办法其一是将inline元素直接写成{display: inline-block;}

其二是将block元素写成{display: inline-block; display: inline;}

另外换行符也会有空格间隙的问题

解决办法其一是去掉空格换行符直接连写,但这样代码不太美观。

其二是对父级元素加上font-size:0,这样字体大小为0的情况下空格也不再占据空间因此间隙问题得以解决。

2.定位

定位position,这个属性的目的是更改盒子与环境的位置关系。它有4种属性值:

属性说明static该关键字指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置。此时 top, right, bottom, left 和 z-index 属性无效。relative相对定位的元素是在文档中的正常位置偏移给定的值,但是不影响其他元素的偏移。absolute

相对定位的元素并未脱离文档流,而绝对定位的元素则脱离了文档流。

绝对定位元素相对于最近的非 static 祖先元素定位。当这样的祖先元素不存在时,则相对于ICB(inital container block, 初始包含块)。

fixed

固定定位

和绝对定位类似,但元素的基准块是viewport视窗。

这种定位常用于创建在滚动屏幕上还有固定元素的地方。

relative的使用可以看如下例子:

<style>

div {

display: inline-block;

width: 100px;

height: 100px;

background-color: red;

color: #fff;

text-align: center;

line-height: 100px;

font-size: 30px;

}

div:nth-child(2) {

position: relative;

top: 20px;

left: 20px;

border: 1px solid #333;

}

</style>

<body>

<div>1</div>

<div>2</div>

<div>3</div>

<div>4</div>

</body>

页面效果如下:

可以看出来在设置relative之后,可以对该元素设置left,right的方位的属性,并且不会影响该元素在文档流中的位置。

absolute的使用可以看如下例子:

<style media="screen">

.parent {

padding: 50px;

background: #eee;

width: 500px;

height: 300px;

}

.child {

background: #ccc;

/* position: relative; */

}

.item {

display: inline-block;

width: 50px;

height: 50px;

background: yellow;

}

.item:nth-child(3) {

position: absolute;

background: red;

left: 10px;

top: 10px;

}

</style>

<body>

<div class="parent">

<div class="child">

<div class="item"></div>

<div class="item"></div>

<div class="item"></div>

<div class="item"></div>

<div class="item"></div>

</div>

</div>

</body>

其展示效果如下:

可以看出来,absolute绝对定位会向上在祖先级元素里寻找有relative的元素,以它作为定位的基准,如果祖先级元素里都没有relative,那它会以根元素作为基准。

fixed的使用可以看如下例子:

<header>

奇妙的文章

</header>

<footer><button>点击就送</button></footer>

<section>

文案分工

形成场景规范角色规范

李晴找到位置

<p>

summis fabulas elit ne iis o amet quae eram id sint non ad sunt singulis ne ne

aliquip non appellat.

</p>

<p>

Illum probant firmissimum. Eu qui quae culpa dolore, anim ad fabulas non elit ut

expetendis nulla commodo laborum eu elit deserunt des

</p>

<p>

Quamquam magna iis possumus eruditionem, litteris praetermissum an litteris.

Ullamco sempitern

</p>

<p>

Et quid commodo coniunctione, proident sed tempor. Quo quamquam aut commodo qui

magna sed nostrud ut export

</p>

<p>

Appellat illum excepteur ne de officia graviterque et commodo se ullamco, in nam

domesticarum.

</p>

<p>

Eram ubi probant ad culpa, eu ab elit eram esse ut dolor probant qui fore quae

hic amet e eiusmod a sint.

</p>

<p>

Quis domesticarum singulis sunt proident ex elit laboris o fugiat anim. Eram o

iudicem e e fore offendit commodo.

</p>

<p>

Ex sunt incididunt fidelissimae ita doctrina qui quis. Laborum ea aute laboris.

Fabulas dolore ullamco, labore offendit quo tempor eram.Non noster graviterque,

ut sunt mandaremus excepteur. E quid occaecat commodo, a quid duis se consequat.

E malis ea quorum.

</p>

<p>

Duis quibusdam est exquisitaque, sed nostrud graviterque de tempor ita id enim

vidisse.

</p>

<p>

E duis aliquip concursionibus, proident ex irure, labore ea possumus id

incurreret sed eram. Quem deserunt quo aute quis,.

</p>

</section>

</body>

其展示效果如下:

在这里插入图片描述

可以看出来当对元素设置了fixed之后,它的绝对定位是相对于屏幕来讲的。

因此只要灵活运用定位,能为我们的布局增加不少色彩,实现更加丰富的网页开发。

从零学前端第二讲:CSS行内块级元素布局定位 修真院Web工程师零基础全能课 本节课内容: CSS行内块级元素布局定位 主讲人介绍 沁修,葡萄藤技术总监 项目经验丰富,擅长H5移动项目开发。 专注技术选型、底层开发、最佳代码实践规范总结推广。 直播录屏版 传送门:https://v.qq.com/x/page/l0675tsgywz.html 1.行内块级元素布局 上一节里面我们讲到了... 阅读详情

相关推荐

CSS盒子模型(border、padding、margin设置)、行内或行内元素水平居中、去除li小圆点、圆角、盒子阴影、文字阴影、透明度

目录1. 盒子模型的组成1. border边框1.1 border-collapse: collapse2. padding 1. 盒子模型的组成 1. border边框 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>test title</title> <style> div {

Bulut0907 6305

CSS】通过定位修改 display 显示模式 ( Display 显示模式转换 | inline-block 改元素为行内元素示例 | 为元素设置浮动 | 为元素设置定位 )

一、Display 显示模式转换 二、元素示例 三、inline-block 改元素为行内元素示例 四、为元素设置浮动 五、为元素设置定位

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1844

CSS中将行内元素设置成行内元素的几种方法

1.display:inline-block 2.position:absolute(relative无效) 3.设置浮动float 这样就可对行内元素设置宽高等特性了

wayne0902的博客 1万+

CSS设置元素和行内元素

CSS-设置元素和行内元素 什么是行元素什么是元素 一:元素 元素单独占据一行,并且排斥和其他元素在同一行,在浏览器中,元素出现的形状是矩形,并且盛放其他元素。 元素 : 列表 表格 div h1 p … 这些都是元素 二:行内元素 行元素都是默认和其他元素在同一行。其中就包括strong,em,span,input img。行内元素可以和其他元素位于同一行,不可以容纳元素,但是可以容纳其他行内元素。 而且有些行元素是不可以设置宽高的 比如:span strong em

weixin_45203607的博客 6833

CSS的知识点总结(三)——布局

目录 一、默认布局 二、display 三、浮动:float 四、定位布局:position 1.相对定位 2.绝对定位 3.固定位置 4.粘性布局 一、默认布局 1.默认布局又称线性布局 默认文档结构从外到内,自上而下,从左到右。 二、display 1.定义:将元素转换为行类元素 2.display:inline; 行内元素...

m0_60489011的博客 494

CSS布局实现 -- 面试题相关简答版(各种居中布局,多列布局,等分等高布局

本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车实战项目、讲解视频,并且会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端

2401_84153146的博客 643

常用布局小节

常见的布局问题 1.居中 元素--定宽居中 div{ width:0px | 0%; margin-left:auto; margin-right:auto; } 行内元素(文本居中) .baba{ text-align:center; } .son{ display:inline-block; } 2.定...

gygygydgh的博客 214

H5+CSS小结

H5常用标签:h1,h2,h3,h4,h5,h6,div,p,ul,li,ol,dl,dt,dd,img,a,span,b,strong,i,em,sub,sup,pre,input 其中h1,h2,h3,h4,h5,h6,div,p,ul,li,ol,dl,dt,dd都属于(block)标签,标签可以设置宽高,以及内外边距,但是独占一行;img,a,span,b,strong,i,em...

qq_35441940的博客 1487

2.初学css(随便记记)

一、浮动和定位 a.文档流(元素的表达形式) 1.CSS标准文档流 默认的网页的元素他的排版是从上到下,从左到右,不管是自动换行,还是需要手动换行 最终决定窗体从上到下一行一行的排版 根据文档流分为两类标签: 文本: p,span,b,i,u ..... (除了p都是从左到右默认排版) 容器: div,li,dt....(每个元素都是独占一行) b.元素和行内元素的区别 特征 行内元素 元素 占位 默认在同一行 独占一行 是否可以设置宽高 不

qi_rem的博客 88

学习HTML总结

一、元素分类 元素 特点: 1、继承父元素的长宽100%; 2、每个元素独占一行; 3、行高padding和margin可设置; 4、元素中可以包含元素和行内元素 常见的元素: 1、<div>容器 2、ul li 无序列表 ol li 有序列表 3、<form>表单 4、<p>段落 5、<table>表...

weixin_41027007的博客 226

学习前端第五天

后代选择器:空格(选择器 选择器 {css}) 子代选择器:> 并集选择器:,(选择器,选择器{css}) 交集选择器:紧挨着 hover伪类选择器 选择器:hover{css} background-color 背景颜色 background-image 背景图片(背景图不经常替换,很大或很小的图片,常用背景来做)img(经常替换的产品类图片) background-repeat no-repeat不平铺 background-position图片背景位置 水平垂直 连写属性: b

m0_62852343的博客 140

CSS】浮动布局定位布局 Flex布局

css三大布局总结

m0_48041877的博客 1703

CSS布局,浮动定位布局

默认的文档流(不加任何修饰,自动布局元素 上下结构 行内元素 左右结构 元素宽度为父的百分百 项目应用:第一层布局 div默认 h5语义标签 display: block 元素默认 inline-block 项目应用:简单的菜单 行内块级元素 inline 行内元素默认 float脱离文档流 脱离文档流,对后续元素的结构有影响 多个浮动元素在一个浮动流中并排显示,如果一排放不下,就会换行显示 对父元素没有支撑作用 清除浮动 位于浮动元素下的非浮动元素会显示到浮动元素的下面,非浮动元素中

weixin_42977865的博客 578

Css布局——浮动、定位、flex

CSS布局 网页的布局方式其实就是指浏览器是如何对网页中的元素进行排版的,浏览器默认的排版方式就是标准流的排版方式 常见的布局方式有浮动布局定位布局、伸缩盒布局。 1.浮动布局 通过float属性将标准流布局改变为浮动布局,float取值为none、left、right,在浮动流中不可以使用margin: 0 auto; float: none 默认值,元素默认在标准流(文档流/普通流)中排列 float: left,元素脱离标准流(文档流/普通流),向页面的左侧浮动 float: righ

xy25408的博客 1658

CSS初入门:网页布局定位布局

定位 position 属性规定应用于元素的定位方法的类型 有五个不同的位置值: static relative fixed absolute sticky 元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的 position 值,它们的工作方式也不同。 静态定位 static 格式:position: static; HTML 元素默认情况下的定位方式为 static(静态)。 静态定位的元素不受

lalala_dxf的博客 2025
上一篇: 如何使用BOOTSTRAP 栅格系统?
下一篇: Bootstrap栅格布局使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值