CSS display:inline-block 속성 사용에 대해

不言
풀어 주다: 2018-06-20 17:14:25
원래의
2197명이 탐색했습니다.

이 글에서는 주로 CSS의 display:inline-block 속성 사용법을 소개하고, 이를 사용할 때 발생하는 간격 문제를 해결하는 데 중점을 둡니다. 도움이 필요한 친구는 참고할 수 있습니다.

display:inline-block 느낌과 디스플레이:테이블- 셀은 내부 요소를 래핑하는 것과 같이 다소 유사합니다. 그러나 display:inline-block의 가장 큰 차이점은 상위 요소의 익명 래핑 기능이 없기 때문에 display:inline-block 속성을 매우 자유롭게 사용할 수 있다는 것입니다. 블록 속성 요소는 인라인 수평 요소 내에 삽입될 수 있습니다. 흑백은 양면을 모두 가지고 있다고 할 수 있습니다.
inline-block 속성이 있는 요소는 인라인 박스 모델에 적합하므로 목록 요소의 높이가 달라도 정렬 오류가 발생하지 않습니다. 각 행의 모든 ​​인라인 요소와 인라인 블록 요소는 함께 라인 상자를 형성합니다. 이 라인 상자의 높이는 내부에서 가장 높은 요소에 따라 결정됩니다. 따라서 inline-block 속성을 가진 리스트 요소의 높이가 비정상이더라도 라인박스 전체의 높이가 늘어나서 다음 라인의 리스트 요소와 어긋나지 않게 됩니다. 아래의 잘못 그려진 다이어그램에서 볼 수 있듯이:
2015119103615662.png (569×429)

일부 선배에 따르면 IE6/7은 display:inline-block 속성을 지원하지 않지만 레이블이 inline-block과 유사한 속성을 가질 수 있도록 허용합니다. 처음에는 이 진술도 수락했습니다. 최근에 text-align:justify;를 사용한 테스트 중 일부 스타일 성능이 확인되었습니다. IE6/7이 display:inline-block 속성을 지원하지 않는 것은 사실입니다. inline-block, 특히 인라인 수평 요소의 경우 성능이 완벽하다고 할 수 있습니다.
IE8+ 및 최신 브라우저의 경우 모든 수준의 요소를 지원하는

{display:inline-block;}
로그인 후 복사

를 사용하세요.

IE6/7 브라우저가 지원되지 않으면 어떻게 해야 하나요? 인라인 수평 요소(예: 태그, 범위 태그 등)인 경우 위와 동일합니다.
{display:inline-block;}
이 두 브라우저의 경우 효과는 동일합니다. *zoom:1 은 동일합니다.
li 태그와 같은 블록 수준 요소인 경우. 현재 더 많은 코드가 필요합니다. 다음과 같은 두 가지 방법이 있습니다.

li {display:inline-block;...}   
li {display:inline;}
로그인 후 복사

또는:

CSS Code클립보드에 콘텐츠 복사

li{display:inline; zoom:1;...}
로그인 후 복사

차단 가로 인라인 차단 요소 사이에는 차이점이 있습니다. 프리젠테이션 레이어와 인라인 레벨.

인라인 블록 문제

위의 예를 관찰하면 주의 깊은 학생들은 각 리 사이에 작은 간격이 있고 우리 코드에서 여백 및 기타 관련 속성을 설정하지 않는다는 것을 확실히 알 수 있습니다.

기본 인라인 요소

먼저 기본 인라인 요소의 성능을 살펴보겠습니다.

HTML code

<a>首页</a>
<a>热点</a>
로그인 후 복사

CSS code

a { margin: 0; padding: 0; border: 1px solid #000; }
로그인 후 복사

Rendering
2015119103638191.jpg (95×33)

기본적으로 간격이 나타나므로 인라인- 인라인 속성과 블록 속성을 자연스럽게 결합한 블록 속성에도 이런 기능이 있습니다.
그럼 이 공백은 무엇일까요?

공백 문자 제거

브라우저에서 공백 문자는 브라우저에 의해 무시되지 않으며, 브라우저는 자동으로 여러 개의 연속된 공백 문자를 하나로 병합합니다. 코드를 작성할 때 공백과 개행 문자는 공백 문자를 생성합니다. 따라서 두 요소 사이에는 당연히 공백이 있게 됩니다. 위 예의 a 태그를 한 줄로 작성하면 공백이 사라지고 메뉴가 간결해집니다.

공백 문자는 브라우저의 일반적인 동작이지만 일반적으로 이러한 공백은 디자이너의 디자인 초안에 나타나지 않습니다. 디자인 초안을 복원할 때 이러한 공백을 어떻게 제거할 수 있습니까?

공백 문자로 인해 발생하는 공백을 제거하려면 먼저 공백 문자가 궁극적으로 문자라는 점을 이해해야 합니다. 글꼴 크기 속성을 설정하여 생성되는 공백의 크기를 제어할 수 있습니다.
먼저 글꼴 크기를 50px로 설정해 보겠습니다. CSS 코드를 다음과 같이 수정합니다.

ul, li { padding: 0; margin: 0; list-style-type: none; font-size:50px}   
li { display: inline-block; border: 1px solid #000; width: 100px; text-align: center;font-size:12px }
로그인 후 복사

ul의 글꼴 크기를 50px로 수정하고, li의 글꼴 크기는 12px로 수정하고 원래 글꼴 크기를 유지합니다. 효과는 다음과 같습니다.
2015119103659068.jpg (478×54)

메뉴 간 간격이 더 넓어진 것을 확인할 수 있습니다.

그런 다음 글꼴 사이트 속성을 0px로 설정하면 코드는 다음과 같습니다

ul, li { padding: 0; margin: 0; list-style-type: none; font-size:0px}   
li { display: inline-block; border: 1px solid #000; width: 100px; text-align: center;font-size:12px }
로그인 후 복사

효과는 다음과 같습니다.
2015119103723026.jpg (456×40)

호환성 문제

IE8+, FF 및 Chrome 브라우저에서 inline-block은 다음과 같습니다. 완벽하게 호환됩니다. IE6 및 IE7과 같은 하위 버전 브라우저의 점유율과 호환되는 방법이 있지만 이 기사에서는 자세히 설명하지 않습니다. 관심이 있는 경우 관련 정보를 찾을 수 있습니다.

인라인 블록 애플리케이션

inline-block的应用什么场景有哪些呢?我们大家考虑一个技术的应用场景时,首先一定要思考的是技术的特性和需求是否符合。inline-block的特点是结合inline和block两种属性的特定,可以设置width和height,并且元素保持行内排列的特性,基于这一点,所有行内排列并且可以设置大小的场景都是我们可以考虑使用inline-block的应用场景。下面举例说明:

网页头部菜单

网页头部的菜单就是典型的横向排列并且需要设置大小的应用,在inline-block之前,实现菜单基本都是用float属性来实现,float属性会造成高度塌陷,需要清除浮动等问题,使用inline-block实现就不需要在意这样的问题。代码如下:

HTML代码

<p class="header">
    <ul>
        <li>
            <a href="javascript:;" target="_blank">服装城</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">美妆馆</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">超市</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">全球购</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">闪购</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">团购</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">拍卖</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">金融</a>
        </li>
        <li>
            <a href="javascript:;" target="_blank">智能</a>
        </li>
    </ul>
</p>
로그인 후 복사

CSS代码:

a, ul, li { padding: 0; margin: 0; list-style-type: none; }   
a { text-decoration: none; color: #333; }    
.header ul { font-size: 0; text-align: center; }   
.header li { display: inline-block; font-size: 16px; width: 80px; text-align: center; }
로그인 후 복사

效果图
2015119103743578.jpg (738×83)

这是模仿京东首页头部导航菜单的实现,使用inline-block可以很简单的实现横向菜单列表

内联块元素

除了菜单之外,一切需要行内排列并且可设置大小的需求就可以用inline-block来实现。

例如使用a标签做按钮时,需要设置按钮的大小,我们就可以使用inline-block来实现。

HTML代码

<p>
    点击右边的按钮直接购买   
    <a href="javascript:;" class="button">
        购买   
    </a>
</p>
로그인 후 복사

CSS代码

.button { display: inline-block; width: 150px; height: 45px; background: #b61d1d; color: #fff; text-align: center; line-height: 45px; font-size: 20px; }
로그인 후 복사

效果图
2015119103804382.jpg (351×55)

布局

inline-block也可以用于常见的布局,使用它就不需要去注意float属性布局带来的问题。

举例说明,创建一个常见的3列布局。

HTML代码

<p class="wrap">
    <p class="header">
        网页头部   
    </p>
    <p class="content">
        <p class="left">
            左侧   
        </p>
        <p class="center">
            中间   
        </p>
        <p class="right">
            右侧   
        </p>
    </p>
    <p class="footer">
        网页底部   
    </p>
</p>
로그인 후 복사

CSS代码

body, p { margin: 0; padding: 0; }   
.header, .footer { width: 100%; background: #ccc; height: 120px; text-align: center; line-height: 120px; }   
.content { margin: 0 auto; background: #ff6a00; width: 1000px; font-size: 0; }   
    .content .left, .content .center, .content .rightright { display: inline-block; font-size: 16px; height: 400px; }   
    .content .left, .content .rightright { width: 200px; }   
    .content .center { width: 600px; background: #00ffff; }
로그인 후 복사

效果图
2015119103825348.jpg (1092×586)

这个例子使用了inline-block做出了常见的网页布局。

关于inline-block的应用,只要是从左到右,从上到下,并且需要设置大小的列表都可以用它来实现,而这种需求是非常常见的,相比于float,我更推荐inline-block。inline-block的应用应该还有很多,大家可以多多挖掘出来。

总结

相比于使用float所带来的问题,使用inline-block所需要注意的点主要是空白符带来的问题,这一点也可以很方便的解决。

使用inline-block可以很方便的进行列表布局,更加符合我们的思维习惯,相信使用它的同学们也会越来越多,欢迎大家讨论。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

CSS使用position:sticky 实现粘性布局的方法

如何使用CSS3的box-reflect来制作倒影效果

如何使用CSS3配合IE滤镜实现渐变和投影的效果

위 내용은 CSS display:inline-block 속성 사용에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿