影响布局的inline-block的空白符的问题
昨天切页面时,进行布局时,想改变以下方法换换口味,所以就抛弃了float方法,采用了display:inline-block方法,没想到却随之而来的带来了一个想不通的问题,那就是空白。废话不多说,上代码。
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- li{ width:50px; height:20px; background-color:#C90; display:inline-block;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li>
- <li>li</li>
- <li>li</li>
- <li>li</li>
- </ul>
- </body>
- </html>
效果如上图所示,每个li之间都会有空格,这影响到我们对页面的布局。
一、造成的原因
inline-block水平呈现的元素之间,如果有换行或空格分隔,那么元素之间会有间距。
二、解决的方法
1、去除元素间的空白或者换行
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- li{ width:50px; height:20px; background-color:#C90; display:inline-block;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li><li>li</li><li>li</li><li>li</li>
- </ul>
- </body>
- </html>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- li{ width:50px; height:20px; background-color:#C90; display:inline-block;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>
- li</li><li>
- li</li><li>
- li</li><li>
- li</li>
- </ul>
- </body>
- </html>
![]()
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- li{ width:50px; height:20px; background-color:#C90; display:inline-block;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li
- ><li>li</li
- ><li>li</li
- ><li>li</li>
- </ul>
- </body>
- </html>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- li{ width:50px; height:20px; background-color:#C90; display:inline-block;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li><!--
- --><li>li</li><!--
- --><li>li</li><!--
- --><li>li</li>
- </ul>
- </body>
- </html>
2、利用margin负外边距
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- li{ width:50px; height:20px; background-color:#C90; display:inline-block; margin-right:-8px;}//不过这个间距是根据字体的大小来调的,不具有普适性
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li>
- <li>li</li>
- <li>li</li>
- <li>li</li>
- </ul>
- </body>
- </html>
3、因为空白字符也是字符,所以可以设置父元素的font-size:0,子元素重新定义font-size大小;但是这种方法在Safari中是无效的。
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- .box{ font-size:;}
- li{ width:50px; height:20px; background-color:#C90; display:inline-block; font-size:12px;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li>
- <li>li</li>
- <li>li</li>
- <li>li</li>
- </ul>
- </body>
- </html>
4、使用letter-spacing
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- .box{ letter-spacing:-8px;}
- li{ width:50px; height:20px; background-color:#C90; display:inline-block; letter-spacing:normal;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li>
- <li>li</li>
- <li>li</li>
- <li>li</li>
- </ul>
- </body>
- </html>
- //Opera浏览器下问题:最小间距1像素,然后,
letter-spacing
再小就还原了
5、使用word-spacing
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>inline-block的空白符</title>
- <style type="text/css">
- .box{ word-spacing:-8px;}
- li{ width:50px; height:20px; background-color:#C90; display:inline-block; word-spacing:normal;}
- </style>
- </head>
- <body>
- <ul class="box">
- <li>li</li>
- <li>li</li>
- <li>li</li>
- <li>li</li>
- </ul>
- </body>
- </html>
影响布局的inline-block的空白符的问题的更多相关文章
- inline, block, and inline-block
总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...
- inline-block,inline,block,table-cell,float
float:left ---------------------------------------------------------------------------------------- ...
- display:inline block inline-block 的区别
原文地址:http://blog.csdn.net/jly036/article/details/5506182 display:block就是将元素显示为块级元素. block元素的特点是: 总是在 ...
- inline,block,inline-block解析
display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div& ...
- inline,block,inline-block的区别
display:block block元素会独占一行,多个block元素会各自新起一行.默认情况下,block元素宽度自动填满其父元素宽度. block元素可以设置width,height属性.块级元 ...
- 块状元素和内联元素 【inline block】
// 9) { colorRandom += colorArray[randomV - 10]; } else { colorRandom += randomV; } } currentEle.css ...
- 土旦:关于display:flex碰上white-space nowrap 影响布局的问题
背景,做一个前面图片宽度固定,后面宽度自适应,使用到了flex布局,但是想让后面div里文字不换行,超出以点点表示时,这时布局就乱了,查了下,原来flex布局与white-space:nowrap有影 ...
- div css 布局对seo 影响 布局原则
一.代码精简 使用DIV+CSS布局,页面代码精简,这一点相信对XHTML有所了解的都知道.代码精简所带来的直接好处有两点:一是提高蜘蛛爬行效率,能在最短的时间内爬完整个页面,这样对收录质量有一定好处 ...
- overflow:hidden 影响布局的问题
a 与 b 都是 inline-block且高与父元素 c 相同均为 30px,而在a加上 overflow:hidden; 会使 a 的底线与整个父元素 c 的 text baseline 对齐,相 ...
随机推荐
- SQL-SERVER2008登录错误233
问题 : SQL Server2008在本地使用Windows身份验证登录或是使用SQL Server身份认证登录时报错:已成功与服务器建立连接,但是在登录过程中发生错取.(provider:共享内存 ...
- HTTP协议5之代理--转
代理服务器 Web代理(proxy)服务器是网络的中间实体. 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色. HTTP的代理服务器即是Web服务器又是Web客户端. Fiddler就是 ...
- easyui-window
<div id="win" class="easyui-window" title="My Window" style="w ...
- js实现的对象数组根据对象的键值进行排序代码
有时候会遇到做展示数组的排序,由大到小和由小到大的切换: var arr=[{id:1,webName:"蚂蚁部落"},{id:2,webName:"网易"}] ...
- 利用MetaWeblog API 自制博客发布小工具
博客园提供了诸多数据接口, 利用这些接口可以很容易的实现博客的发布,修改,删除等 1.需要引用一个DLL:为CookComputing.XmlRpcV2 2.新建一个类,在其中是一些要实现的东西,如: ...
- java 加载图片的几种方式
项目目录--src--testTable--image--active.gif | |_Task.class 方法1:通过项目目录访问. String a = System.getProperty(& ...
- setNeedsDisplay、layoutSubViews
UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.而setNeedsDisplay会调 用自动调用drawRect方法,这样可以拿到UIGra ...
- Java IO4:字符流进阶及BufferedWriter、BufferedReader
字符流和字节流的区别 拿一下上一篇文章的例子: 1 public static void main(String[] args) throws Exception 2 { 3 File file = ...
- c++设计模式之状态模式
一. 状态模式 定义:允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类. 实现方式1: workstate 状态抽象类 workstate1 状态实现类1 workstate2 ...
- display:table-cell的惊天作用,直接惊呆你!
一 display:table-cell介绍 ... 二 用法 (1)高度不固定元素,垂直居中 ... (2)高度不固定列表元素,登高排列 ... (3)宽度不固定元素,平均分配 ...