CSS-1

Tips:

        1、即使对于绝对定位的元素,只要它横向或者纵向没设置定位,就可以用flex或者grid改变它横向/纵向的位置

        2、grid和flex居中都是以盒模型中的content为准,所以padding会影响居中效果

        3、父元素未设宽高,子元素百分比无用

        4、使用flex并限制宽度可以使文字垂直显示

        5、用百分比设置宽高,会相对于父容器改变,但用vw/vh,在设置了最小宽高,且小于最小值的情况下,会出现与父容器脱节的情况,但是用vw和vh来限制宽高就不会了

        6、不应该给“<span>”设宽高,这样元素大小就会随着字体大小改变,而不会出现文字下划线不和谐

        8、img和grid、flex相性不好,要用“div”将“img”包着才行

        9、flex和grid没设置“align/justify”对齐方式时,子元素可以不用设置“width/height”,因为会默认填充满整个父容器

        10、calc(xxx +/- xxx)中间必须有空格

        11、“grid-auto-flow”为“column”时,列最后考虑,先从上往下填满行。为“row(默认值)”时,行最后考虑,先从左往右填满列

        12、滚动显示时想要平滑跳转可以使用“scrll-behavior:smooth(平滑)”属性

        13、grid、flex:有宽高才能设置对齐属性

        14、自动填充滚动显示的容器用·overflow:auto·,与自动伸缩容器物理意义上(不看层级)直接接触层级最近父容器要设置·overflow:hidden·,才能让自动填充的容器滚动显示。比如:往下嵌套三层的子容器想要滚动显示,而往上两层父容器都是自动伸缩的,那么就要看自动伸缩的最外层容器邻接的父容器有没有设置·hidden·(其实归结一句话,就是想要滚动显示,必须要让设置滚动的容器知道自己是被限制的!)

        15、`border-radius`:跟宽高有关,当其值为最大边的一半,不论是`px`还是`50%`,就会是圆

        16、※滚动显示时,主要是用外层父容器限制,从而使内部滚动容器受限从而开始滚动

        17、·display:none·的元素不会占用·grid/flex·布局位置

        18、·padding·不影响滚动条,所以可以通过padding来腾出滚动条空间


RGB颜色转换


常用class=“类名”来标记,多类名中间要用空格隔开;

.class{

      属性:值

}


id标记好比身份证号,一般用于页面唯一性的元素上,搭配js使用

#id{

      属性:值

}


在<head>里写上<link rel="stylesheet" href="路径">引入样式表


CSS样式优先级:内联样式 > 外部样式,同样是外部样式写在后面的外部样式会覆盖前面的。

声明优先级:!important > 内联 > ID > Class|属性|伪类 > 元素选择器。计算方式是根据左大右小以及累加。


display的几种属性值:inline, block,inline-block

inline(行内元素):不能更改height,width值,大小只能由内容决定;不会独占一行;可以使用padding全部属性以及margin左右属性。

block(块元素):可以更改height,width值以及padding、margin全部属性;但是会独占一行;默认填满父元素宽度。

inline-block(行内块元素):不独占一行的块元素。

inline-block float(浮动布局)的区别:

inline-block:整齐,有间隙(可以为父元素添加{font-size:0}来消除空白符大小)

float:参差不齐(需要子元素高度一致才会显得整齐),无间隙。浮动元素依然遵循盒模型。

总结:对于横向排列使用inline-block可以去除浮动,避免布局混乱;float用于文字环绕效果。

float:使目标元素靠左右放置,父元素设置后不会应用于子元素。子元素设置后,只要没有占满整行,会依次水平排列。父元素应用float布局后,宽度会依照子元素的最大宽度。

清除浮动:之所以会有浮动脱出标准流,是因为应用float的元素会脱离正常布局,而位于浮动元素(应用了float的元素)之下的正常布局内容围绕浮动元素,填满右侧区域,所以要把clear添加到浮动元素之下的正常布局元素,来清除其两侧的浮动。


上标 下标

flex:主轴默认横向排列,flex-direction决定项目排列方向(想要让大大小小每一个元素自动占一行就用这个属性)。

flex-flow属性是flex-direction(方向)属性和flex-wrap(换行)属性的简写形式。

flex是一种布局方案,应用flex的元素标签自动成为“容器”,容器下有6种属性,分别为方向、换行、方向+换行、横向(主轴)对齐方式、垂直方向(纵轴)对齐方式

stretch代表容器占据整个页面(上下左右)

注意align-content属性是多轴条件,所以下属的space-around和stretch参数都是针对轴线;stretch占满整个交叉轴,指纵向拉伸项目;space-around指轴线间的间隔而非项目间隔

注意,flex所属的元素将成为布局容器,旗下的元素比如<a>标签之类的有另外6种属性设置。分别为:顺序、放大倍数(都是1则平分空间,其中一个是2或者更多则分配的空间是1的2倍或者更多倍,而不是按照自身大小的倍数,注:默认值为0不放大)、缩小比例(注:默认值为1,表示空间足够的情况下不缩小,如果为0则什么情况下都不缩小,而1的项目平分剩下的空间)、基础大小、以及放大,缩小,基础大小的综合属性flex、单项目的对齐方式(可覆盖父容器的align-items,默认值是auto,表示继承父元素的align-items属性)

flex只能应用在子元素,不能用到子元素的子元素

flex布局下子元素不能设置成absolute,absolute会脱离布局控制,relative也会无视absolute的元素;非flex布局下即使用了absolute页面也会自动编排元素,但是设置了定位后就会脱离页面自动编排的位置,所以在设置left和right的时候元素不会叠到一起(上下排布的元素),但是用上下定位的时候会堆叠

用flex排布字体会将div元素里的字当作最小的元素块移动位置

Tips:①使用“flex-grow/flex-shrink”可以控制元素自动填充,是flex的自动填充方法,“flex-grow”默认不填充扩大,所以要单独设置

grid布局

    Tips:

        1、想要自动填充滚动,用grid-auto-row/column将自动填充的内容设置为自己想要的大小

        2、`overflow:auto`会在gird设置了`对齐方式(比如align-items、justify-items)`时失效!,所以往常能自动滚动是因为,里面没有设置对齐格式,让子元素自动填充网格再配合overflow才实现

        3、自动撑大父容器不能使用百分比

        4、绝对定位不占用grid划分好的格子

        5、父容器设置了宽高后,想要一行一行自动填充内容,可以用“grid-template-columns:repeat(auto-fill, 绝对值);”,会根据容器大小自动填充

        6、auto-fill是容器宽高设置的情况下尽可能往里填充元素,对那种宽高自动撑大的容器可以不用设置template-column/row;

            tips:repeat(auto-fill)在固定大小的父容器中非常好用,会自动换行

        7、justify/align-content是指分割块铺不满容器时,分割块的定位

        8、如果想横向扩充,需要设置grid-auto-flow:column(先列后行),先填充满列再补充行,其实就是变相告诉浏览器是横向排列还是纵向;

        9、·template-col/row妙用!·用于指定起始·列/行数·,比如·auto-flow:row(默认)·时,纵向滚动,默认是一行只有一列,而使用·template-column:repeat(auto-fill/指定列数,绝对大小)·,可以指定一行有多少列,然后向下滚动

       10、 fr单位是将以知宽度按比例切割,不能用于撑大父元素

        11、使用grid制作表格时,当表头和单元格尺寸不一时,grid-template能帮上忙,它能指定手写的行列为指定宽高

        12、`grid-gap`:第一个参数是行间隔,第二个参数是列间隔

        13、设了宽高的情况下使用百分比或者绝对大小自动填充看起来是一样的,但是滚动的时候超出原始宽高的部分还是会自动压缩

        14、使用·template-row/column·时,元素会自动填充,而不会自动垂直排列。只有超出·template(模板)·的才会,所以才需要·auto-flow:column·来规定多出来的元素如何排布

        15、默认自动拉伸,但是当设置align或justify对齐时,会自动将未设宽高的元素压缩至最小;这与·flex·不同,flex只会自动拉伸高度,在·direction:column·时,则会拉伸·宽度·,因为主轴变为纵轴时,原来的高度就变为了宽度


line-height是行高,在一行中字体是默认居中的,当行高与块级元素高度相同,字体就垂直居中了。

页面居中:绝对或相对定位、top等属性设为0、margin:auto;左右居中就left,right为0,margin:auto(但是会拉伸未设宽高的地方

                  left:50%(移动边缘),margin-left:半径负数(再往回拉半径的距离就居中了)

                  在`flex、grid`布局下`margin:auto`会自动占用可用的`空间`,且`绝对定位`下,`auto`不会起作用

front-size:%是相对于正常字体大小,不是相对于父元素


标准流就是元素排版布局中默认从左至右,从上到下的排列方式



父元素下的子元素是absolute时margin是相对于父元素而言的;一般情况下margin是相对于相邻元素的外边距,left等属性只有在absolute下才能使用

在同一个父元素下使用relative,原始位置会自动错开;使用absolute且想保持贴合,需要统一使用一个定位基准,比如都用left和top

Fixed:绝对定位,是相对于浏览器窗口,会脱离文档流,滚动时位置不变;Absolute:绝对定位,是相对于最近的父元素(不是static定位),会脱离文档流无视padding;Relative:相对定位(偏移),不会脱离文档流,原来的位置依然被保留(原来的位置指所有元素的默认叠加位置,比如第二个块元素的原始位置在第一个块元素的下面,那么relative就是从第一个块元素下作为起始位置)。(new)Sticky(粘性的):relative和fixed的结合体,通过top等属性,可以设置元素在距离窗口多少距离时滚动时位置不变

padding可以限制内部宽高;

箭头代表正值移动方向,黑色表示可移动

即是说margin-left负值是元素往左移动,而margin-right正值是父元素往右移动

小技巧:当把自身体积压缩到0时,就不会浮动了;用margin-right右侧元素压缩自己,到0的时候就变成了没有体积的东西,会跟到左侧元素的后面;用margin-left自己压缩左侧元素,会取代左侧元素被压缩掉的宽度。

总结:margin-left压缩别人,margin-right压缩自己。

当父元素宽高不固定时,margin撑大父容器。


边框角:用border-left等属性制作小正方形,通过absolute覆盖到边框角落


选择器:

    “aaa bbb”:后代选择器

    “aaa > bbb”:子代选择器

    “h1 + p”:相邻兄弟选择器

    “h1 ~ p”:通用兄弟选择器

    before伪元素插入图片:content设为空,display必须为block或者inline-block,宽高必须设置才能显示出来;background-repeat以及vertical-align、background-position可以辅助设置图标位置

    伪类选择器后还可以跟子元素,以及子元素的选择器——跟在选择器后的子元素可以用于限制在`选择器特定条件`下元素的样式改变,比如一些元素初始样式是隐藏,在`:hover`悬停时再显示这个元素

    选择器后还可以跟选择器,但是要注意顺序

    伪元素默认属性是“内联元素”,要想设置宽高,必须设置display:block;在设置背景图片时,必须设置content:‘ ’

    属性选择器

            “[标签属性]”搜寻所有标签中特定的属性名

    css函数:attr(属性名)——返回选择器前元素的属性值

    nth-child(x)序号从1开始,匹配同类元素集合下的第x个元素

    css选择器“>”是仅作用于儿子标签,不会作用于下一级标签(如果孙子节点才是要找的标签,使用>是找不到的)

    TIps:

        1、css选择器,使用`逗号,`间隔应用多个样式

         2、css本质上是通过“各类选择器”定位标签位置,来设置样式,所以不论是通过 属性选择器、class、id,都是为了一个目的——找到这个标签元素

        3、·指定类名等nth-child(n)·是当前元素的·父级元素·下的第n个元素,·只会·根据指定类名等来·确定父级·


用opacity设置透明度会影响到子元素,字体也会变透明


box-sizing属性:border-box下相当于把padding和border算在content里,盒模型会自动根据padding和border的值来调整content的值


width和height属性是相对于包含它的块元素


object-fit一般用于img和video标签,当窗口大小改变,不想把图片压扁时,可以用此属性等比例裁剪或者缩放图片

对于横贯整个页面的img,使用object-fit会适得其反

object-fit仅适用于图片上有文字不适宜拉伸的时候


输入框有默认选中样式,使用outline:none清除,再设置自己的样式;

如果要选中样式和不选中样式一样,则不需要设置:focus样式


阴影效果:

    text-shadow:水平偏移量  垂直偏移量  距离  颜色。给文字添加发光效果

        Tips:

            1、要添加多层阴影,不然颜色会很淡

    box-shadow:水平偏移量  垂直偏移量 模糊距离 阴影大小 阴影颜色 内/外

        Tips:外阴影的时候是“右、下为正”,内阴影的时候是“左、上为正”,模糊距离是数字越大边缘越模糊


font-size百分比是相对于自身,而不是父元素


z-index仅在设置position时有效


最外层父元素的overflow也会影响里层子元素的显示,超出设置overflow的父元素会被隐藏


实现图片和文字重叠:图片只设置宽高,文字容器设置同样的宽高,并用绝对定位left:0和top:0,使用line-height居中


清除input默认样式:

        background:默认背景白色

        border:默认边框

        outline:默认选中颜色,设为0则清除默认设置


图片默认可拖拽,要阻止默认设置,可以用“user-drag:none”


text-overflow:必须搭配overflow:hidden(溢出内容隐藏)和white-space:nowrap(强制文本一行显示)


没设置宽高的元素,通过同时设置上下边距,可以间接设置宽高


@keyframes关键字

    0%和100%可以用from to代替(但其实不太好用,不能来回);

    搭配animation-name调用定义好的动画名

    animation是自动触发的动画,并且有帧的概念,而transition(过渡动画)和transform(变形)只有开始和结束状态,并且需要依靠条件(hover等)触发;

    transform-origin是相对于自身

animation动画:

    animation:以下所有属性的集合,书写位置不限制,例如`animation: test 1s alternate linear 3;`,表示`使用动画test,动画持续时间1秒,交替播放,线性播放,动画播放3次`

    animation-duration:动画持续时间

    animation-timing-function:动画展示速度(先快后慢或是中间快两边慢等)

    animation-delay:动画启动前延迟

    animation-iteration-count:动画循环次数

    animation-direction:动画正向播放或者着播放,且当动画播放不止一次时,选择动画轮流方式(交替反向动画等)

    ※animation-fill-mode:动画播放完是默认清除动画过程中的样式的,这个属性可以设置动画结束时样式是否保留

    animation-play-state:动画暂停或播放,常用于JS中


进行3D旋转的时候一定要给每个面设置绝对定位


cursor:not-allowed和no-drop是禁用样式


父级没设宽高,自动撑大,子元素宽高百分比会自动往上一级找


table标签消除默认间距:`border-collapse:collapse;`

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

推荐阅读更多精彩内容