1、inline-block

存在问题:inline-block的相互间距,元素之间会有一个左右2px的margin一样产生

           请看中间的空隙。

为什么会产生这个空隙呢??

怎么解决呢?

方案1:使子元素在html中无缝排列

<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul> <!---变成下面的---->
<ul>
<li>one</li><li>two</li><li>three</li>
</ul>

方案2:将父元素字号设置为0;然后在li元素上恢复字号大小

ul {
font-size:;
}
li {
font-size: 12px;
}

2、iconfont字体

3、margin值:

负值:margin 设置负值需要根据设置的方向以及元素是否浮动以及其定位方式来判断最终的行为

---------------------参考https://gold.xitu.io/post/58037f4a0bd1d000580dccd8-------------------

  a、无浮动,无定位:

           top 或者 left: 元素会按照设置的方向移动相应的距离  (margin-left: -100px;。 那么,元素会往左移动 100px)

           bottom 或者 right:元素本身并不会移动,元素后面的其他元素会往该元素的方向移动相应的距离,并且覆盖在该元素上面 (设置 margin-right: -100px;。那么,元素本身并不会移动,后面的元素会向左移动 100px 到该元素上)

   b、无浮动,position 为 relative:   同a

  c、无浮动,position 为 absolute:   top 或者 left同a     bottom 或者 right 脱离文档流对后面的无影响

   d、有float浮动:

          float方向  同  margin的负方向  (float: right; margin-right: -100px;都是right)   元素会往对应的方向(right)移动对应的距离

          float方向  反  margin的负方向  (float: right; margin-left: -100px;都是right)   则元素本身不动,元素之前或者之后的元素会向该元素的方向移动相应的距离(该元素左边的元素则会向右移动 100px,同时覆盖在该元素上)

  e、两个元素都有float(许多经典布局的案例):这种行为与没有既没有设置浮动也没有设置定位的表现类似

          案例:  一列定宽的两列流式布局  两边固定,中间自适应的三列布局(双飞翼布局)

4、float:

浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素(向漂浮起来左右移动的气球)

对多个元素设置浮动,可以实现类似inline-block的效果;但是如果每个元素的高度不一致,会出现“卡住”的情况。

浮动的负面作用就是:高度塌陷,那么就用到了清除浮动(1、clear  2、BFC)

5、clear:

不允许使用clear的元素  左边/右边/两侧(left/right/both)挨着浮动元素,底层原理是在被清除浮动的元素(使用clear的元素)上边或者下边添加足够的清除空间

     简单而言就是  它不和浮动同流合污,哪怕自己掉下一层,委屈自己

                 

<!--- 引入了一个空的div元素    不建议 ---->

<div class="box-wrapper">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div style="clear:both;"></div>
</div>

最新版通用模式:

// 全浏览器通用的clearfix方案【推荐】
// 引入了zoom以支持IE6/7
// 同时加入:before以解决现代浏览器上边距折叠的问题
.clearfix:before,
.clearfix:after {
display: table;
content: " ";
}
.clearfix:after {
clear: both;
}
.clearfix{
*zoom:;
}

(总结:float是魔鬼,会影响其他相邻元素;但是clear是小白,其只会影响自身,不会对其他相邻元素造成影响!”)

6、position:

7、border-radius:圆角  

border-radius:   四个位置的顺序:[左上] [右上] [右下] [左下]    每个位置的计算方式:水平/垂直

原理:给元素的四个角用一个相应位置尺寸(比如左上,就是左上尺寸为半径的圆)的圆去内切此元素。

8、::after和::before中的content

1、可以取空字符串,任意字符串   content: “”   content: “\e804”

2、还可以取一些属性:content: attr(id)  去dom中的attr属性

9、line-height:

  line-height = 行间距(指相邻文本行间  上一个文本行下行线  和  下一文本行上行线 间的距离)  +   字形大小(font-size)

  行间距是在文本上下两边平均分开的

10、css中的百分数   %   百分比值是一种相对值,需要正确找到它的参照。

包含块Containing Block概念:

  相对谁来计算: 静态定位和相对定位,包含块一般就是其父元素

          对于绝对定位的元素,包含块应该是离它最近的 position 为 absolute、relative、或者 fixed 的祖先元素

          固定定位的元素fixed属性,它的包含块是视口(viewport) 

  计算的具体值:   乘以包含块的宽度 margin, padding, left, right, text-indent, width, max-width, min-width

 看出margin和padding不管是  上下还是左右都  按照包含块的宽度来计算。。。(非正常)

          乘以包含块的高度 top, bottom, height, max-height, min-height

背景定位 background-position中的百分比 分别设置水平方向和垂直方向上的两个值,如果使用百分比,那么百分比值会同时应用于元素和图像。

  例如 :50% 50% 会把图片的(50%, 50%)这一点与框的(50%, 50%)处对齐,相当于设置了 center center。同理 0% 0% 相当于 left top,100% 100% 相当于 right bottom。

font-size : 百分比值应该乘以父元素的字体大小。

line-height:在没有继承的前提下,他是以自己的font-size计算的。

  例如:font-size:20px;line-height: 100%;那么line-height: 20px;

vertical-align:参照是元素自身的line-height

  例如,一个元素的line-height是30px,则vertical-align:10%;的效果是vertical-align:3px;。

transform:参照是元素自己的border-box尺寸(左右是宽  上下是高----正常)

  例如,一个宽度为150px,高度为100px的元素,定义transform:translate(50%, 50%)的效果是transform:translate(75px, 50px);。

border-radius: 百分比值参照物是这个元素自身的尺寸,border-top-left-radius、border-bottom-left-radius  left按高计算         right按宽计算??

百分比的继承:继承原则就是 父先计算,子再继承(继承的是计算后的实实在在有固定单位的),优先继承计算后的实际值,而不是继承百分比后计算

  例如:父元素的font-size是14px,line-height:150%;,子元素的font-size:20px,那么子元素的line-height是14px*150%,而不是21px*150%。

css中的一些属性解析的更多相关文章

  1. css中display的属性解析

    display 属性规定元素应该生成的框的类型. 他有很多属性值,见如下表格: none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会 ...

  2. CSS 中关于background 属性功能

    background 是 css中的核心属性,我们对他应该充分了解. background-image   定义背景图像  这个属性是我们用的最多的属性 设置背景图像有两个方式 background: ...

  3. Css中的Position属性

    Css中的Position属性 Css属性在线查询地址: http://www.css88.com/book/css/properties/index.htm CSS 中的 position 属性 在 ...

  4. css中background背景属性概

    css中background背景属性概 background:url(背景图片路径)  no-repeat;/*不重复默认在左上方*/background:url(背景图片路径)  no-repeat ...

  5. CSS中的display属性

    CSS中的display属性 display:block是可以把非块级元素强制转换为块级元素显示,如内嵌元素span,原来不支持设置宽高,宽度是由内容撑开的,几个span元素是在同一行内的,如果给sp ...

  6. 举例详解CSS中的cursor属性

    这篇文章主要举例介绍了CSS中的cursor属性,包括zoom-in/zoom-out和grab/grabbing等常用属性值的使用,需要的朋友可以参考下 一.开篇之言 CSS3的领域范围已经渗透到了 ...

  7. 深入理解css中的margin属性

    深入理解css中的margin属性 之前我一直认为margin属性是一个非常简单的属性,但是最近做项目时遇到了一些问题,才发现margin属性还是有一些“坑”的,下面我会介绍margin的基本知识以及 ...

  8. 理解与应用css中的display属性

    理解与应用css中的display属性 display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none block inline inline-block inherit 下面, ...

  9. css中的列表属性

    list-style-type设定引导列表的符号类型,可以设置多种符号类型,值为disc.circle.square等 list-style-image使用图像作为定制列表的符号 list-style ...

随机推荐

  1. vue 导航钩子

    导航钩子 (译者:『导航』表示路由正在发生改变.) 正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消.有多种方式可以在路由导航发生时执行钩子:全局的, 单个路由独享的 ...

  2. [JAVA] java class 基本定义 Note

    java class 基本定义 Note 1 package abeen.note; 2 import java.util.*; 3 4 5 /* 6 java calss 基本 7 */ 8 pub ...

  3. 嵌入式Linux > 简易安装思路,步骤记录

    思路就是把ipk文件通过ftp上传到linux上,然后通过opkg来安装. 很多的工具已经都能UI化这些操作了,命令行只是备用的工具, - 当所有工具都不好用或者遇到问题的时候,上命令行是最直接.快捷 ...

  4. git简单命令

    1. git status(不代参数) -- 查看本地修改过的文件 git status -s (简洁) 2. git add  -- 添加到暂存区 3. git commit -m '提交的mess ...

  5. Eclipse 调试的时候Tomcat报错启动不了

    Eclipse 调试的时候Tomcat报错启动不了 1.把所有的断点删掉 2.清理工程 3.在Tomcat里面删除项目 4.删除Tomcat的配置,重新配置一下

  6. MySQL新建用户,授权,删除用户,修改密码

    首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的.注:本操作是在WIN命令提示符下,phpMyAdmin同样适用.    用户:phplamp  用户数据库: ...

  7. 如何在win7上安装ant-design

    1.首先要安装务必确认 Node.js 已经升级到 v4.x 或以上. 2.打开cmd,输入"npm install antd-init -g",安装antd(可以自己先指定安装目 ...

  8. Java生成带小图标的二维码-google zxing 工具类

    近期一直忙于开发微信商城项目,应客户要求,要开发个有图标的二维码.经过两次改版,终于实现了该功能(第一次没有小图标,这次才整合好的),如下是完整代码 . 该代码使用Java7开发,另外使用 core- ...

  9. FMDB

    一.FMDB简介 1.FMDB简介 iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较繁琐.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB. ...

  10. 用jQuery基于原生js封装的轮播

    我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...