2022-02-14——2月中旬,继续学习(弹性盒子,空隙,居中)

精灵图在放大时,需要将包括width,height内的所有相关数值全部*2

——15.00记录

滑动门背景(一种背景布局思路)

这里是一个崭新的背景思路,就是说在前端设计中,背景其实并不是像浏览者看到的一整块背景布,其实在设计时,很可能该背景是由多个盒子分割而成,截取重复的部分,使用平铺的方法做成,这样做的目的,是为了最大程度减少背景图的变形。这里放下一个简单的例子:


具体代码参考2022.2.14日滑动门背景代码

居中元素的整理

1.使用外边距margin

2.使用 position定位(像素单位)

3.使用 position定位(百分比单位,然后使用复数减去多余的部分,详情见代码)

.parent {

            width: 400px;

            height: 300px;

            background-color: gray;

            /* 相对定位 */

            position: relative;

        }

        .child {

            width: 100px;

            height: 80px;

            background-color: blue;

            /* 绝对定位 */

            position: absolute;

            left: 50%;

            top: 50%;

            margin-left: -50px;

            margin-top: -40px;

        }

    </style>

<div class="parent">

        <div class="child"></div>

    </div>

4.行高配合vertical-align: middle;(但我不明白为什么)

.parent {

            width: 400px;

            height: 300px;

            background-color: #ccc;

            font-size: 0;

            text-align: center;

            /* 设置行高 */

            line-height: 300px;

        }

        .parent img {

            /* 针对行内(块)元素垂直对齐方式 */

            vertical-align: middle;

        }

<div class="parent">

        <img src="../img/qq.png" alt="">

    </div>

行内块空隙解决办法:

1.font-size: 0;

2.vertical-align: middle;

3.float: left;

属性选择器(题外话,有空看)

元素的隐藏 display 、visibility: hidden、设置透明程度(opacity和直接设置为透明色)

弹性盒子(重点中的重点)

呼呼,关于居中定位第四点我都没搞懂,就来记录这个了,没办法,感觉有点多,所以趁着还没忘掉,赶紧记一下。

首先,我这里同浮动定位来对标弹性定位,因为他们都有共同点:

float属性定义元素脱离文档流浮动,默认值none,left和right控制元素向左右浮动,值inherit继承父元素的float的属性

display:flex称为Flex容器,他的所有子元素自动成为容器成员,称为Flex项目,会使块级元素和行内元素均具有行内块特点

。这只是他们相似的地方,但这两个东西一个是爸爸级别的,一个是儿子级别的,不能说五五开,只能说完全吊打,在各个方面,弹性都是优于浮动的,我这两天应该只有在拉按钮或者文本内容的时候考虑过浮动。

欧克,那么现在开始详细记录弹性的各个要点:

首先弹性并非在需要做布局的盒子上使用,而是在其镶嵌的大盒子上使用,这会让盒子中的所有元素拥有弹性布局特点,代码为:display:flex

一.元素在水平方向上的布局方式justify-content

(此处这个图,妈蛋这破网上传了30分钟%@¥#%@#@%)

.parent-1 {

            /* 设置子元素在主轴方向结束的位置 */

            justify-content: flex-end;

        }

        .parent-2 {

            /* 设置子元素在主轴方向的位置 ,元素左右两侧是相同的间距 */

            justify-content: space-around;

        }

        .parent-3 {

            /* 设置子元素在主轴方向的位置 ,元素左右对齐 */

            justify-content: space-between;

        }

        .parent-4 {

            /* 设置子元素在主轴方向的位置 ,除了元素所占的位置,平均计算元素之间的间距*/

            justify-content: space-evenly;

        }

这里, justify-content主要设置水平的布局。

二.元素在竖直方向上的布局方式align-items

 .parent-1 {

            /* 设置子元素在垂直方向的位置 */

            /* flex-start  center flex-end  */

            align-items: flex-end;

        }

三.元素的居中方式

这里也就是用水平和数值方向上的两个属性justify-content和 align-items来设置

 justify-content: center;

 align-items: center;

四.元素的摆放方向flex-direction

这里要使用的属性是flex-direction,该属性负责将元素以行或者列的形式来摆放,同时还可以将元素反向摆放:

display: flex;

            /* 设置子元素的摆放的方向 */

            /* column 列 (垂直方式摆放) */

            /* row 行 (水平方式摆放)*/

            /* row-reverse 行  (水平方式摆放)反向摆放*/

            /* column-reverse 列 (垂直方式摆放) 反向摆放*/

            /* flex-direction: column-reverse; */

            /* 例如: */

            /* 设置子元素为侧轴方向摆放*/

            flex-direction: column;

            /* 设置子元素在垂直方向的位置 */

            justify-content: flex-end;

            /* 设置子元素在水平方向的位置 */

            align-items: flex-end;

五.元素换行flex-wrap

弹性布局并不像浮动布局,浮动布局依次排列,在父盒子宽度不够时,会自动换行,这也是弹性布局的一个大问题,当浏览器伸缩时,可能会导致一排元素掉到下一行。弹性布局换行代码为flex-wrap,值为nowrap,wrap,wrap-reverse

 display: flex;

            /* 设置子元素换行显示 */

            /* nowrap : 不换行 */

            /* wrap : 换行 */

            flex-wrap: wrap;

六.控制元素大小

这里分别有三个值:flex-grow,flex-shrink,flex-basis

这三个值也是flex的简写属性,flex-grow更广泛,此属性表示元素的扩大数值,也用于表示各元素占据的比例,如下

.parent .child {

            /* width: 100px; */

            height: 100px;

            background-color: red;

            /* 拓展(扩大) */

            flex-grow: 1;

        }

        .parent .demo {

            height: 100px;

            background-color: green;

            /* 拓展(扩大) */

            flex-grow: 1;

flex-shrink目前用于当弹性布局让元素内容缩小时使用,设置为0可以让元素不再缩小

flex-basis,目前我还是不太懂这个值和width有什么区别这里先记录为flex专用的宽度属性

.example-1 {

            /* 设置当前元素的宽度为100px */

            /* flex-basis 是根据flex-direction来设置元素的尺寸 */

            flex-basis: 100px;

            height: 100px;

            background-color: deepskyblue;

        }

        .example-2 {

            /* flex-basis: 500px; */

            /* 把父元素剩余的宽度设置给当前元素*/

            flex-grow: 1;

            height: 100px;

            background-color: purple;

        }

 <div class="parent">

        <div class="example-1"></div>

        <div class="example-2"></div>

    </div>

最后总结一下:

一类:给父元素设置的属性

1) 设置元素为弹性盒子

                display: flex 

2)设置元素在主轴方向的摆放(默认是水平方向)

                justify-content: flex-start /center /flex-end/ space-around/ space-between / space-evenly

3)设置元素在侧轴方向的摆放(默认是垂直方向)

单行元素的垂直位置以及行与行之间存在间距

                align-item: flex-start / center / flex-end

4)设置元素在侧轴方向的摆放(默认是垂直方向)

多行元素的垂直位置以及行与行之间不存在间距

                align-content: flex-start / center / flex-end

5)设置子元素尺寸相加超过父元素 设置换行显示

                flex-wrap: nowrap/ wrap / reserve-wrap

6)设置子元素摆放方向(X,Y)控制元素在主轴或侧轴的位置

                flex-direction: row (行) / column (列) / row-reserve / column-reserve


一类:给子元素设置的属性

控制元素的尺寸

flex : flex-grow flex-shrink flex-basis

1)设置元素扩大

flex-grow: 数字

                .box-1 { flex-grow: 2 ;}

.box-2 { flex-grow: 3 ;}

.box-3 { flex-grow: 5 ; }

.box-1 : .box-2 : .box-3 =  2: 3 : 5


占父元素的多少分值几

.box-1 占父元素宽度的2/10

.box-2 占父元素宽度的3/10

.box-3 占父元素宽度的5/10

2)设置元素收缩

                flex-shrink: 数字

flex-shrink: 0 表示当前元素不会缩小。

3)设置元素的基础值(width/height)

根据元素所在的轴设置其尺寸

主轴 设置宽度

侧轴 设置高度

                flex-basis: 跟width / height 属性值是一样的

4)设置元素的垂直位置

                align-slef: flex-start / center / flex-end

5)设置元素渲染的先后顺序

                order: 数值

数值越小 位置越往前摆放

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容