CSS中inline-block的应用

  以往我们做横向菜单列表的时候,往往使用li和float:left结合来实现,但这样通常会造成布局的混乱。因此我们可以尝试使用li和display:inline-block来实现。

  简单的说,设置了inline-block属性的元素既拥有了block元素可以设置width和height的特性,又保持了inline-block元素不换行的特性。

  首先,创建一个html文件,包含以下代码:

<style>
ul,li{
    padding:0;
    margin:0;
}
li{
    display:inline-block;
    border:1px solid #000;
}
</style>

<ul>
    <li>TianJin</li>
    <li>ShangHai</li>
    <li>SuZhou</li>
    <li>NanJing</li>
</ul>

    当我们在浏览器端打开此页面时,效果如下:

                    

     然而我们发现,虽然设置了margin和padding属性为0,但每个li之间有一个小空隙,接下来如果把代码中的li标签写在一行,如下所示: 

<style>
ul,li{
    padding:0;
    margin:0;
}
li{
    display:inline-block;
    border:1px solid #000;
}
</style>

<ul>
    <li>TianJin</li><li>ShangHai</li><li>SuZhou</li><li>NanJing</li></ul>

    再次在浏览器中打开的时候,效果就变成:

                    

    令人惊讶的是小空隙居然不见了!笔者对文档的修改实际上只是将3个Enter去掉,怎么会让小空隙消失呢!突然灵光一闪,笔者想起了这样一个知识点,在浏览器中

  空白符是不会被浏览器忽略的,多个连续的空白符会被浏览器自动合并成1个。我们编写代码时写的空格,换行符都会产生空白符。所以自然而然的两个元素之间会有空

  白符,如果将上述例子中的li标签写在一行,那么空白符会消失,菜单自然也就紧凑了起来。

    但代码中把标签写在一行终归不是方法,那如何才能优雅的去掉小空隙呢!说到底,空白符也是字符,所以可不可以设置font-size为0呢?所以将代码如下修改:

<style>
ul,li{
    padding:0;
    margin:0;
    font-size:0px;
    text-align:center;
}
li{
    display:inline-block;
    border:1px solid #000;
    font-size:12px;
    width:120px;
}
</style>

<ul>
    <li>TianJin</li>
    <li>ShangHai</li>
    <li>SuZhou</li>
    <li>NanJing</li>
</ul>

    代码中除了修改字体大小为0外,并且设置了li元素的宽度,以及文字居中对齐等,然后浏览器端显示的效果为:

          

    怎么样!效果还算可以,然后你可以在添加额外的代码使菜单显得更加美观!上面只是一些核心的东西。总结一下,从我们简简单单的html文件到浏览器端显示的绚丽的

  效果的过程,真是一件神奇的事情!因为我们只是敲了一系列的字符而已,经过浏览器的转换,变成华丽页面。在此过程中,我们的html文件相当于浏览器这个系统的输入,

  而输出呢就是那些华丽的界面。因此这和浏览器的“编译”过程以及渲染机制密不可分。所以我们要加深对浏览器工作过程的了解,这样会帮助我们走的更远。代码我已经上

  传到github,请有需要的同学前往https://github.com/bigVoyage/ST_hw01.

  

时间: 2024-10-17 14:13:38

CSS中inline-block的应用的相关文章

CSS display:inline|block|inline-block差异

display:inline|block|inline-block三属性的区别和联系,block就是将元素显示为块级元素,inline就是将元素 显示为行内元素,CSS display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行内,允许空格. 详解CSS display:inline|block|inline-block的区别 ◆CSS display:block CSS display:block就是将元素显示为块级元素. blo

Css 中的 block,inline和inline-block概念和区别

1.block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 2.大体来说HTML元素各有其自身的布局级别(block元素还是inline元素): -常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL,

CSS中display:block属性的作用

display:block可以理解为块,举个简单的例子!比如你做一个超链接,<li><a href="#">超链接</a></li>当你鼠标移过到文字的时候,超链接有效果!而当我把样式这样设置:li a{width:100px;height:100px; display:block; color:red; text-decoration:none;}鼠标移到文字周围100*100的地方,就有超链接效果了,就是把100*100做为一块来的超

css中display常用属性详解之Block(一)

用了几年的css了,css中inline | block |inline-block|table|flex从来没有做过系统的整理和分析,网上的分析文章也很多,零散. 今天有空,就在这做一下整理分析 block 解释:指定对象为块元素(占据一定矩形空间,可以通过设置高度.宽度.内外边距等属性,来调整的这个矩形的样) 特点:1.处于常规流中时,如果width没有设置,会自动填充满父容器  2.可以应用margin/padding  3.在没有设置高度的情况下会扩展高度以包含常规流中的子元素  4.处

你不知道的css中block与inline的区别(转)

所有的HTML元素都属于block和inline之一. block元素的特点是:(1)总是在新行上开始:(2)高度,行高以及顶和底边距都可控制:(3)宽度缺省是它的容器的100%,除非设定一个宽度<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. 相反地,inline元素的特点是: (1)和其他元素都在一行上:(2)高,行高及顶和底边距不可改变:(3)宽度就是它的文字或图片的宽度,不可改变.&l

CSS——display(Block none inline等)属性的用法

在一般的CSS布局制作时候,我们常常会用到display对应值有block.none.inline这三个值.下面我们来分别来认识和学习什么时候用什么值.这里通过CSS display知识加实例.图演示讲解方法来学习和了解DIV CSS display. 目录 CSS display使用 display的值有哪些 css display block显示 css display none隐藏 css display inline 一.CSS display使用     -   TOP 以下为DIV

display:block在css中的意思?

1.css中的display是设置元素显示的方式,block是以块状元素的方式显示,inline是以内联元素的方式显示,none是不显示:块状元素会单独占据一样,其他元素跟他在同一行的会被迫换行,挤到下一行那里去,inline则不会这样.2.待续 原文地址:https://www.cnblogs.com/herizai/p/8452433.html

[CSS3] CSS Display Property: Block, Inline-Block, and Inline

Understanding the most common CSS display types of block, inline-block, and inline will allow you to get the most out of your HTML and use CSS Frameworks like Bootstrap to their fullest. Takeway: Inline: Can NOT add height and width. But can add marg

深入理解CSS中的层叠上下文和层叠顺序(转)

by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=5115 零.世间的道理都是想通的 在这个世界上,凡事都有个先后顺序,凡物都有个论资排辈.比方说食堂排队打饭,对吧,讲求先到先得,总不可能一拥而上.再比如说话语权,老婆的话永远是对的,领导的话永远是对的. 在CSS届,也是如此.只是,一般情况下,大家歌舞升平,看不出什么差异,即所谓的众生平等.但是,当发生冲突发生纠葛的时

深入理解CSS中的margin

1.css margin可以改变容器的尺寸 元素尺寸 可视尺寸--标准盒子模型中盒子的宽度是不包括margin值的,clientWidth 占据尺寸--包括margin的宽度 outWidth不在标准之中,jquery中有相对应的方法 margin与可视尺寸 1.1使用那个与没有设定width/height的普通block水平元素 2.2只适用于水平方向尺寸 <body style="background-color:#1a2b3c"> <div style=&quo