美文网首页
width作用的具体细节

width作用的具体细节

作者: skoll | 来源:发表于2022-02-27 21:29 被阅读0次

必须知道

1 .width作用在内在盒子,也就是容器盒子

auto的四种宽度表现

auto是width的默认值,尽管这样,却也是一个深藏不漏的家伙

1 .充分利用可用空间(外部尺寸)

1 .div,p这些元素的宽度默认是100%于父级容器的
2 .这种充分利用可用空间的行为还有一个专有名字fill-available

2 .收缩与包裹(内部尺寸)

1 .浮动,绝对定位,inline-block或者table元素,会收缩到内容大小
.container{
            /* float: left; */
            position: absolute;
        }
<div class="container">
        飞流直下三千尺
 </div>
正常这个盒子大小应该是占满屏幕的,但是现在只有112px

3 .收缩到最小min-content(内部尺寸)

1 .

4 .超出容器限制 max-content(内部尺寸)

1 .除非有明确的width设置,否则上面三种情况尺寸都不会主动超过父级宽度,但是如果是很长的文字,而且设置了white-space:nowrap.文字就会一直向右排列,不会换行,这种情况就会超出容器的宽度
截屏2022-02-27 下午5.27.56.png

如图,不设置white-space:nowrap的时候,宽度不会超,只会向下


截屏2022-02-27 下午5.29.32.png

如图,如果加了white-wrap:nowrap;会超出容器限制

总结

1 .在css世界中,盒子分为“内在盒子”,‘外在盒子’,显示也分为“内部显示”,‘’外部显示‘。尺寸也分为“内部尺寸”,’外部尺寸‘
2 .内部尺寸英语是'intrinsic sizing',表示尺寸由内部元素决定,外部尺寸“extrinsic sizing”,宽度由外部元素决定

外部尺寸和流体特性

1 .正常流宽度.当我们往页面中添加一个div元素,div的尺寸就像是流铺满元素一样,会铺满整个容器,但是这并不等于这个div的宽度是width:"100%".所以当把一个元素设置为display:block的时候,在加一条width:100%是不对的。这俩是互斥的,给一个元素添加宽度是会破坏他的流动性

1 .其次,流自己的铺满并不仅仅是width:100%,而是margin,border,padding,和content内容区域自动分配水平空间的机制。
2 .所以张鑫旭的“无宽度”原则还是有必要的.

2 .格式化宽度:在绝对定位模型中,默认是包裹性,宽度由内容决定,但是如果有以下属性,left/righ或top/bottom对立方位的属性值同时存在的时候,他的宽度表现为格式化宽度,宽度大小由最近的具有定位特性(position的值不是static)的祖先元素计算而来

position:absolute;left:20px;righht:20px;这种情况下元素宽度是由最近定位的祖先元素款速定位而来

内部尺寸与流体特性

1 .尺寸的大小由内部的元素决定。如果一个元素没有内容的时候他的宽度是0,那么这个元素就是由内部元素决定
3 .内部尺寸的三种表现形式

1 .包裹性

1 .元素尺寸由内部元素决定,会永远小于“包含块”容器的尺寸。对于一个元素如果display:inline-block,那么即使里面内容再多,只要是正常文本,宽度也不会超过容器
2 .Button元素,按钮就是最具代表性的inline-block元素。按钮文字越多,宽度越高,如果文字足够多,则会在容器的宽度处自动换行。

1 .注意,button按钮标签才会自换行,input标签按钮,默认white-space:pre是不会换行的
2 .包裹性实际的使用:文字少的时候居中显示,文字多的时候左对齐
.container{
           text-align: center;
           background-color: blueviolet;
           padding:10px;
           width: 200px;
        }

        .content{
            display: inline-block;
            text-align: left;
        }
<div class="container">
        <p class="content">123123123123</p>
    </div>

2 .首选最小宽度

1 .也就是css不会在width:auto的时候,并且有图文的时候不会是0的。会选最小宽度的
2 .汉字的时候,最小宽度是一个汉字的宽度
3 .英语单词的时候,最小宽度有额定的英文字符单元决定
4 .使用情况,画一些图形:利用连续单词不换行的特性,可以控制什么时候换行,什么时候正常显示,所以可以非常方便实现这些凹凸的形状


截屏2022-02-27 下午7.39.21.png
.ao{
                display: inline-block;
                width: 0;
            }

            .ao:before{
                content:"love 你 love";
                outline:2px solid #eee;
            }

3.最大宽度

1 .最大宽度就是元素可以有的最大宽度。实际上最大宽度实际等同于“包裹性”。如果设置了withe-space:nowrap。那就是最后没有换行的宽度。如果内部没有块级元素或块级元素没有设置宽度值,那么最大宽度实际上是最大的连续内联盒子的宽度
2 .连续内联盒子就是全部都是内联级别的一个或一堆元素,中间没有任何的换行标签br或其他块级元素
3 .实际用处:实现滚动

滚动的实现方式有两种原理:一种是使用原生的滚动,scrollLeft/scrollTop值的变化,他的优点是简单,不足是效果呆板。另一种是借助内部元素的尺寸和容器的关系,通过修改内部元素的位置实现滚动效果,优点就是效果很炫酷,比如滑动的阻尼感。iScroll就是使用这种方式实现的

width值作用的细节width:100px是怎么起作用的

1 .上面全部都只是说了width:auto的点,别的都没说
2 .width宽度直接作用在内在盒子上,内在盒子是由content box,padding box,border box,margin box。
3 .margin的背景永远是透明的,因此不能作为background-clip,background-origin属性值出现。
4 .100px作用在了content box上,但是由于div默认的padding,border,margin都是0,因此div所呈现的宽度就是100像素.如果此时padding,border也有值的话,那么最后的表现就不是100px.一定比这个大

缺点

1 .流动性丢失,对于块状元素来说,如果是width:auto的话,元素会如水流般充满整个元素,一旦设定了width具体数值,元素的流动性就会被阻断,因为元素给定宽度就像河流中间竖起两个大闸一样,流动性丢失
2 .与现实世界表现不一致.包含padding或border会让元素宽度变大。我们设置100像素宽度,其实希望是整个元素的最终宽度是100px,而不是最后比这个大.-解决方式-宽度分离原则:和宽度有关的属性要分在两个地方写,比如父元素写width属性,子元素做padding,border这些属性

.box{
                width: 10px;
                border:1px solid red;
            }
.box{
                width: 10px;
                padding:10px;
            }
//这种情况不要出现

3 .解决方式2,使用box-sizing属性:他可以改变width作用的细节.box-sizing属性值

1 .content-box:默认值
2 .padding-box:不支持
3 .border-box:不支持
4 .margin-box:不支持
5 .border-box:100px像素的宽度将会作用到border box上

4 .注意box-sizing不持之margin,只有当元素没有水平margin的时候,box-sizing才能真正无计算,上面提到的宽度分离元素是可以真正解决这个问题的
5 .唯一离不开box-sizing的元素就是input和textarea元素,让他们实现100%自适应宽度

 .ao{
            width:300px;
        }
 .ao textarea{
            width:100%;
        }
 <div class="ao">
            <textarea name="" id="" cols="30" rows="10"></textarea>
    </div>

相关文章

  • width作用的具体细节

    必须知道 1 .width作用在内在盒子,也就是容器盒子 auto的四种宽度表现 auto是width的默认值,尽...

  • width与height css世界的尺寸

    width具体细节 1、width :auto;至少包含四种表现形式: 充分利用可利用的空间,div p元素的默认...

  • 大学老师的作用

    大学老师更大的作用是指明方向,而不是具体细节的讲述。具体细节的讲述,现在b站上已经做得很好了,除非是比较冷门的方向...

  • 具体细节

    3. 消极找出关键字 什么是关键字。作者特殊使用的字。客观很难发现。 主观,难理解的词,让人头疼 判断是不是每个让...

  • css中min-width和max-width的使用

    css基础语法结构 min-width与max-width后面均跟具体数字+html单位 min-width:50...

  • 本章的具体细节

    分析阅读的阶段。阅读技术三个阶段就是整体了解、深入钻研、联系评价。整体了解就是前4个规则,叫分类、整体、复杂性还有...

  • 目标的作用

    目标的作用,是让我们可以从细节上进行沉浸式的投入,又可以让我们抽身具体的细节对大的方向进行宏观的把控。 人如果没有...

  • 三、本章的具体细节

    (一)开篇概论 1. 懂&不懂 懂,满足前面的8个规则 不懂,找出问题点。 2. 什么是坏书? 什么是坏书 什么样...

  • 二、本章的具体细节

    (一)开篇概述 开篇讨论同一个主题读两三本书 强调同一主题 特定主题 后续例子的内容做了引导 1. 主题阅读的基本...

  • 二、本章的具体细节

    (一)开篇概述 1. 收尾呼应 终于完成了一开始提出的这种内容大要 “一开始”指的是整本书的第一篇 主动,自主,3...

网友评论

      本文标题:width作用的具体细节

      本文链接:https://www.haomeiwen.com/subject/ezpalrtx.html