行内元素&块状元素

原文地址:block、inline、inline-block区别以及标签嵌套

1、block

   将元素转为块元素,块元素占一行,可以设置宽和高。

2、inline

  将元素转为行内元素,占一行,不可以设置宽和高。

3、inline-block

  将元素设置为行内块元素,这时元素既可以设置宽和高,又占一行。但这时的元素之间会出现缝隙,解决办法:1)设置浮动 2)将父元素的font-size设置为0,子元素设置为实际大小

4、常见的几种元素

  块级元素 :div、h系列、li、dt、dd、p

      行内元素  :span、u、a、、em、b、i、u、em

      行内块元素:input 、img 、button 、texterea 、label。

5、p标签不能包含div标签

  块级元素和行内元素之间的嵌套,是块级可以嵌套行内元素和某些块级元素,而行内元素不能嵌套块级元素,可以嵌套文本和其他行内元素。但有几个特殊的块级元素只能包含行内元素, h1~h6、p、dt,因此p标签不能包含div元素,因为浏览器渲染的缘故,p包含div元素时会被渲染成:<p>xxx</p><div>xxxx</div><p></p>。

  li 内可包含 div 标签

     <li><div></div></li>

  块级元素与块级元素并列、行内元素与行内元素并列

    <div><h2></h2><p></p></div>  正确

    <div><a href="#"></a><span></span></div>  正确

    <div><h2></h2><span></span></div>  错误,行内元素与块级元素并列了(这条???)


关于行内元素的padding和margin,由a测试可得,padding在四个方向都是有效的。margin在竖直方向无效。

--------------------------小实验--------------------------

(1)添加padding之前,没有margin:


(2)添加padding之后,没有margin:


所以说行内元素的padding在四个方向都是有效的,但是竖直方向上的padding是不会对周边产生影响的。

(3)添加margin之后:


可见水平方向的margin有效。行内元素的margin在竖直方向上应该也是有效的,但是不会产生影响就像padding一样,再加margin的不可见性(上不了色加不了框啥的)所以就跟完全不存在似的(一个猜想,不一定对)。

### CSS 行内块状元素的使用及其特性 行内块级元素(`inline-block`)是一种特殊的显示方式,它允许元素像`inline`(行内)元素一样在同一行上排列,同时又具备`block`(块级)元素的一些特征。这意味着它可以设置宽度、高度以及内外边距等属性。 #### 设置 `display: inline-block` 当一个元素被定义为`inline-block`时,其行为如下: - 它不会独占一行,而是与其他`inline`或`inline-block`类型的兄弟元素并列放置; - 可以为该元素指定具体的尺寸(宽高),并且这些设定会被浏览器尊重; ```css .inline-block-element { display: inline-block; } ``` 这种布局方法非常适合创建水平导航菜单或其他需要紧凑排列的小部件[^1]。 #### 处理间距问题 由于HTML中的空白符会影响`inline-block`元素之间的距离,在实际开发过程中可能会遇到意外的空间间隔现象。解决办法之一是在父容器中移除多余的空格字符或者调整字体大小至零来消除间隙影响。 ```css .parent-container { font-size: 0; /* Remove space between inline-block children */ } .child-elements { display: inline-block; vertical-align: top; /* Align items vertically at the top */ font-size: initial; /* Reset font size inside child elements */ } ``` 通过上述手段能够有效控制由默认渲染机制带来的额外空间,从而实现更精确的设计意图[^2]。 #### 结合Flexbox模型 对于更加复杂的多项目排版需求来说,采用`flex`弹性盒子可能是一个更好的选择。这不仅简化了代码结构,还提供了更多灵活可控的方式来管理子项的位置关系。 ```css .flex-container { display: flex; justify-content: center; /* Center horizontally */ align-items: stretch; /* Stretch items vertically */ } ``` 这种方式下即使内部组件采用了不同的`display`模式也能很好地协同工作,保持一致的高度表现[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值