CSS的一些案例和坑

display: inline-block的坑

(一) 先看了个例子

<style type="text/css">
  ul{
    width: 300px;
    height: 50px;
  }
  li{
    width: 50px;
    height: 50px;
    background: blue;
    display: inline-block;
  }
</style>
<body>
  <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</body>

运行代码效果:

可以看到给li设置display: inline-block后元素排成了一行,但是每个之间出现间距;

如果将代码这样写

<style type="text/css">
  ul{
    width: 300px;
    height: 50px;
  }
  li{
    width: 50px;
    height: 50px;
    background: blue;
    display: inline-block;
  }
</style>
<body>
  <ul>
    <li></li><li></li><li></li><li></li><li></li>
  </ul>
</body>

运行代码效果:

 如果将li不换行写成一行,css样式代码没有更改,间距就消失了;

参看W3C对display属性值的解释:

 inline : 默认。此元素会被显示为内联元素,元素前后没有换行符。

 block :此元素将显示为块级元素,此元素前后会带有换行符。

 inline-block : 行内块元素。

 个人理解出现这样坑的原因:inline-block将元素显示为行内块元素时,block会让元素前后带有换行符,但因为已经inline内联所以元素前后会出现间距;

(二) 填坑

方法一:在ul中设置一个font-size属性,但是此方法在Safari浏览器无效;

<style type="text/css">
  ul{
    width: 300px;
    height: 50px;
   font-size: 0;
  }
  li{
    width: 50px;
    height: 50px;
    background: blue;
    display: inline-block;
  }
</style>

方法二:margin-left设为负值调整间距

<style type="text/css">
  ul{
    width: 300px;
    height: 50px;
  }
  li{
    width: 50px;
    height: 50px;
    background: blue;
    display: inline-block;
   margin-left: -4px;
  }
</style>
<body>
  <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</body>

CSS经典案例:实现垂直水平居中

话不多说上代码

<style type="text/css">
div{
  width: 100px;
  height: 100px;
  background: red;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -50px;
  margin-top: -50px;
}
</style>
<body>
  <div></div>
</body>

position:absolute将div元素绝对定位,是以div元素的左顶点相对于父级元素(目前父级元素为浏览器窗口)的左顶点定位,所以要让div元素实现真正的垂直水平居中就需要让元素的中心位置点相对父级元素绝对定位,这时就需要将margin-left,margin-top值设为负的高宽的一半,使中心位置点到原来的左上角点,这样就实现div元素的垂直水平居中。

时间: 2024-10-14 20:48:34

CSS的一些案例和坑的相关文章

div+css登陆界面案例2

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> body{ margin: 0px; padding:0px; font-size:12px; background-color: #1873a

div+css登陆界面案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style type="text/css"> body{ margin: 0px; padding:0px; font-size:12px; background-color: #1873aa; text-align: center; overflow: hid

对于CSS新人的几个坑

之前对CSS的了解也不多,自己平时写东西时也基本依赖bootstrap,基本没有自己去设计过UI,在这次的项目经历中,踩到了一些大坑,当然,至对于新手才有这些困惑,在这里记录下来,方便自己之后查阅,也分享给更多进坑的新人们. 当然,开始前还是要吐槽一下前端最大的坑——IE! 清除格式 当你在写CSS之前,如果你的页面中并没有引入其他的样式,一定要先级的去“清除样式”,这里的清除样式,主要指的是清除浏览器的两个默认样式(padding和margin),不然,你的额昂也背景会出现白边的异常状况. *

别具光芒 CSS网页布局案例剖析 中文pdf扫描版

别具光芒:CSS网页布局案例剖析以七大完整案例为线索,紧密围绕在使用CSS+DIV布局制作网页过程中遇到的实际需要和应该掌握的技术,全面介绍了CSS布局网页的各方面内容和技巧.书中摒弃了案例书常见的一味罗列步骤,轻视技术原理的做法,把案例作为学习手段,不但侧重讲解CSS盒子模型.标准流.浮动.定位等四大核心技术原理,更侧重讲解如何在实践中应用它们.读者通过案例,既可以掌握CSS的核心技术要点,也可以了解相关技术和工作流程,使读者不但知其然,还知其所以然.此外,本书还结合了流行的CMS内容管理系统

Javascript+CSS经典效果案例剖解

在编写前端代码的时候经常会因为网页添加什么动态效果而发愁,现在给你一些经典的案例,可以到时候参考一下的. CSS+js滚动图片功能: 涉及到的知识点:CSS: width height background-image以及其他一些样式属性, Javascript:Event事件有:mouseover mouseout click image的load DOM:element.style element.scrollTop 以及 setInterval() clearInterval()等 需要定

HTML学习笔记 CSS背景样式案例 第六节 (原创) 参考使用表

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>样式</title> <link rel="stylesheet" href="tzy.css" type="text/css"> </head> <body>

HTML学习笔记 CSS学习选择器案例 第五节 (原创) 参考使用表

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="tzy.css" type="text/css"> <style type="tex

2017.9.24 基于HTML+JavaScript+CSS的开发案例&amp;&amp;JavaScript+CSS+DIV实现表格变色

1.JavaScript+CSS+DIV实现下拉菜单 1.1 层标签<div> 基本语法: <div id="层编号" style="position:absoult;left:29px;top:12px; width:200px;henght:100px;background-color:#33CC99; float:none;clear:none;z-index:1"> </div> 语法说明: ·position属性主要是来

css实现调色板案例

代码来自http://dabblet.com/gist/70c434a6e802b062f494 主要涉及css中伪元素的应用,主要有nth-child()和before.after等伪元素,重点为兄弟元素的巧妙应用. 效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport"