日常css技巧小结(2)-- inline-block带来的迷惑

一、问题描述

在平时布局中,inline-block使用的频率比很高,主要是因为可以让行标签设置宽高。我在布局过程中,发现了两个“问题”,

1行标签.display:inline-block之后的行标签之间有4像素的间距;https://jsfiddle.net/firelight/69phh891/

2.对display:inline-block的行标签设置margin:0 auto;也不会在父级居中。https://jsfiddle.net/firelight/jh5ojqu6/

我开始对display:inline-block的理解是:既是行标签也是块标签。随着这两个问题的出现发现并不是简单的1+1=2。

二、捋一捋概念

  • block

    • 会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
    • 可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
    • 可以设置margin和padding属性
  • inline
    • 不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
    • 设置width,height属性无效。
    • margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。
  • inline-block
    • W3school:An inline-block element is placed as an inline element (on the same line as adjacent content), but it behaves as a block element.
    • 对上一句我的理解是:inline-block元素本身还是行标签,但当对其设置某属性时具有块标签的特点。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。

三、解析问题

1、display:inline-block之后的行标签之间有4像素的间距;?
起初我认为是inline-block带来的问题,结果当我把inline-block去掉,这4个像素依然存在。在张鑫旭的一篇博客中,解释这个是符合规范的应有的表现,元素间留白间距出现的原因就是标签段之间的空格,因此,去掉HTML中的空格,自然间距就木有了。当然还有N种在不影响HTML代码结构的情况下解决这个问题的方法,就不在此赘述。可以参考张鑫旭的文章:http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove

2、对display:inline-block的元素设置margin:0 auto;也不会居中?

margin:0 auto;是设置块标签在父级中居中对齐,是一种对齐方式。所以对于display:inline-block,设置margin:0 auto;此时是其本身的行标签性质占上风(而行标签本身默认靠左对齐),所以并不起作用。应该在其父级设置text-align:center来居中对齐。如果设置具体的margin,上下左右四个方向还是可以的。https://jsfiddle.net/firelight/jh5ojqu6/1/

时间: 2024-10-22 18:32:28

日常css技巧小结(2)-- inline-block带来的迷惑的相关文章

日常css技巧小结(1)--背景透明度改变对内容无影响

刚开始出现的错误,内容会受到背景透明度改变的影响:如图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div{ width:300px; height: 300px; margin: 50px auto; line-height:

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

让IE和Firefox兼容的CSS技巧集合css hack

CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声明. CSS技巧 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不

CSS 技巧汇总

CSS 选择符优先级 !important 声明>内联样式(style)>id 选择符(#id)>类选择符(.class)=伪类选择符(:hover )=属性选择符([attr] )>类型选择符(标签)=伪元素选择符(:first-child) sticky 定位问题 sticky 定位的元素受父级块级元素影响,其宽度继承的是父级的宽度,另外其只能显示在父级的内容区,当滚动距离超过其父级的高度时,即超过内容区后,其也会相应得被推出可视区域,使用时要注意.注:sticky 元素的父级

CSS技巧----DIV+CSS规范命名大全集合

网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容篇. 常用DIV+CSS命名大全集合,即CSS命名规则 DIV CSS命名目录 命名规则说明 重要CSS命名 CSS命名参考表 命名技巧 我们开发CSS+DIV网页(Xhtml)时候,比较困惑和纠结的事就是CSS命名,特别是新手不知道什么地方该如何命名,怎样命名才是好的方法. 一.命名规则说明:   -   TOP 1).所有的命名最好都小写2).属性的值

你应该知道的25个非常有用的CSS技巧

在我们的前端CSS编码当中,经常要设置特殊的字体效果,边框圆角等等,还要考虑兼容性的问题, CSS网页布局,说难,其实很简单. 说它容易,往往有很多问题困扰着新手,在中介绍了非常多的技巧,这些小技巧与知识能事半功倍的给大家以帮助,经验丰富的CSS程序员通常都知道这一点,但初学者不要错过了! 这里有25个非常有用的CSS技巧,将帮助你解决让你棘手的CSS代码问题.你可以直接使用到你现在的项目当中 1.更改文本突出显示颜色(Change Text Highlight Color) 您可能不知道!使用

20个很有用的CSS技巧

导语:下面这几个CSS技巧你可能不知道,1.彩色照片变黑白,2.所有元素垂直居中,3.禁用鼠标,4.模糊文字,小编学完能量满满的,觉得对CSS又充满了爱,你也来看看. 1. 黑白图像 这段代码会让你的彩色照片显示为黑白照片,是不是很酷? img.desaturate { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%

网页设计师必备的10个CSS技巧

CSS是网页设计师的基础,对CSS的了解能使他们能够设计出更加美观别致的网页.使用CSS技巧来巧妙地处理CSS是非常令设计师着迷的事情.在CSS的深海世界里有很多有意思的东西,你只需要找到最适合你的就好.当然我们不可能一下子就记住所有CSS的规则和语法,但为了以后的发展我们还是应该记住那些非常有用的CSS技巧.今天我们精心准备了10条对网页设计师最有用的CSS技巧,如果你想设计出独一无二脱颖而出的网页你必须得好好注意了.这篇博客是在与一家提供高质量印刷服务的在线印刷公司“ Business Ca

你很熟悉CSS,却没掌握这些CSS技巧

转载来自 http://www.html5cn.org/article-9294-1.html 做前端开发的人都很熟悉CSS,一个漂亮的网页由HTML标签和控制这些标签布局的CSS组成,因此CSS在开发中起到功不可没的作用,在我们频繁使用CSS过程中掌握一些技巧是必须的,本文分享了22个方便且很重要的CSS技巧,值得收藏! 混合模式 目前,Firefox 和 Safari 开始支持混合模式,就像 Photoshop 一样.Chrome 和 Opera 也支持,只是有些差异. 你可以创建不同的样式