css学习笔记

width与height css世界的尺寸

2018-12-09  本文已影响0人  白璞1024

width具体细节

1、width :auto;至少包含四种表现形式:

2、宽度和流体特性

以上的四种宽度,1是外部宽度,234是内部宽度

外部宽度和流的特性

内部宽度和流的特性:

3、 width的细节

有四种盒子:content box,padding box,border box,margin box
宽度的表现设定不合理的原因:

  1. 设置宽度流动性丢失,尤其是宽度设定在content上的时候
  2. 与现实世界表现不一致的困扰;可能是指的宽度是content的,但是开发者以为是包含了padding 或者是border

4、css流体布局下的宽度分离原则

宽度分离原则:width不与影响宽度的属性如:padding/border属性共存

//不推荐这么写
.box{width:100px;border:1px solid ;}
//要分开写
.father{width:100xp;}
.son {
margin:0 20px;
padding:0 20px;
border:1px solid;
}

如上就是设置了父元素,然后子元素根据流动性实现内部自适应
张鑫旭就推荐,整个html只有一个widht,然后剩下的就全用流体布局实现。

5、 box-sizing

可以理解为宽度作用的细节

box-sizing :content-box;/**默认值**/
box-sizing :padding-box/**firefox支持**/
box-sizing :border-box;/**全线支持**/
box-sizing :margin-box;/**都不支持**/

box-sizing :border-box;d的时候,其实是相当于width包含了content paddingborder的宽度。

但是为什么不支持margin-box呢?
因为改变margin并不会影响offset的尺寸 但是borderpadding就不一样了
如果有了box-sizing支持了margin-box那么background-origin属性要不要支持,margin的背景永远透明在规范里标明了

*{box-sizing:border-box}
/**这种方式不好,1浪费渲染,search的搜索框本来就是这个属性,2、不能真正的实现无计算**/

/**推荐**/
input ,textarea,img,video ,object{
box-sizing:border-box;
}
/**因为box-sizing设计的主要目的还是为了这种原色普通文本框和文本域的计算**/

height 的细节

1、height:100%

如果父元素不确定的话,那么height的百分比基本上就可以当成没看见了。
原因:如果包含块的高度没显示指定(即高度由内容决定,且该元素不是绝对定位,那么计算值就是auto) 'auto'* 100% = nan

如何支持100% 的高度

1、显示的确定高度
2、使用绝对定位,注意的是绝对定位元素的百分比和非绝对定位元素的百分比是有区别的。

min-width /max-width /min-height/max-height

1 、min-width /max-width 与流

其出现一定是自适应布局 或者是流布局中出现的。如果定死了,就没有变化的可能性

2、与众不同的初始值

max-*系列,初始值是:none
min-*系列的初始值是:auto
为什么max系列不能使auto呢?如果父元素是100px子元素是200px,如果默认max-widthauto也就是max-width:100px;直接让子元素的200px无效,所以不能使auto

3、max 会覆盖width 哪怕你是important

如果一个元素width:100px!important但是max-width:20px;那么宽度还是20px
超越最大:min 覆盖max
如果max-width:50px;min-width:100px;那么超越最大的原则,min就会赢了,元素为100px

上一篇 下一篇

猜你喜欢

热点阅读