CSS继承、盒子模型、float浮动、定位、diaplay

一、CSS继承

1.文字相关的样式会被子元素继承。

2.布局样式相关的不会被子元素继承。(用inherit可以强行继承)

实现效果:

二、盒子模型

每个标签都有一个盒子模型,有内容区、内边距、边框、外边距。

从内到外:content->padding->border->margin。

注:如果没有设置box-sizing属性,一个盒子的最终大小为content+padding+border,也是background-color的区域。

1.content:标签的内容区域,用来盛放别的标签或文本,一般css设置的宽高就是这个区域。

2.padding:内容到边框的距离,一般设置完后,由于padding占位,会撑大盒子模型。

①单参数:指定对应边内边距或者一次性指定所有内边距(单位:px %)。

padding-left

padding-right

padding-top

padding-bottom

padding

②多参数:参数个数,按【上 -> 右 -> 下 -> 左】顺时针顺序,没有指定到的边则和对边相同。

padding:上下 右左

padding:上 右左 下

padding:上 右 下 左

3.border:边框样式

①单参数:指定对应边框或一次性指定所有边框。

border-left

border-right

border-top

border-bottom

border-width

②多参数:参数个数,按【上 -> 右 -> 下 -> 左】顺时针顺序,没有指定到的边则和对边相同。

border-width:上下 右左

border-width:上 右左 下

border-width:上 右 下 左

③快速写法

border:1px,solid #123456

4.margin:外边距,一般用来调整盒子之间的距离,参数写法与作用同padding。

①单参数:指定对应边框或一次项指定所有边框。

margin

margin-left

margin-right

margin-top

margin-bottom

②多参数:参数个数,按【上 -> 右 -> 下 -> 左】顺时针顺序,没有指定到的边则和对边相同。

margin:上下 右左

margin:上 右左 下

margin:上 右 下 左

补充:

1.背景颜色会填充到margin以内的区域

2.内容在content区域

3.box-sizing:可以改变盒子模型的展示形态

content-box(默认值)------width、height,作用于content

border-box------width、height,作用于content padding border,防止padding、border撑大盒子大小。

4.box-shadow:可以设置盒子模型的周边阴影

参数:x轴偏移量 y轴偏移量 阴影大小 阴影颜色

/* 一个偏右下的红色阴影 */

box-shadow: 10px 20px 10px red;

实现效果:

三、float浮动

1.文档流:文档中可显示对象在排列时所占用的位置。

块级元素:单独一行,自上而下(div、h1、p)

行内元素:从左到右水平分布显示(a、span、strong)

2.float特点:

①脱离文档流,相对于父容器靠左或者靠右排列,如果之前有浮动元素,会挨着排列。

②如果区域出现<img>标签,浮动元素的文本会绕开图片区域,呈现一个【文字围绕图片】的效果

3.参数值:

①none:不浮动,保持原文档流

②left:脱离文档流,居左浮动

③right:脱离文档流,居右浮动

实现效果:

多种浮动效果:

四、定位

分为relative、absolute、fixed。

属性值:top(距离顶部)、bottom(距离底部)、left(距离左边值)、right(距离右边值)

(top和bottom不同时用;left和right不同时用)

在开始布局之前,使用***{}**把所有标签的margin和padding设置为0,取消屏幕间隔。

没有设置*{}时,有间隔

1.相对定位:relative,以自身为参照点移动位置。

<div class="box">

.box{

width: 100px;

height: 100px;

background-color: green;

position: relative;

left: 100px;

top: 100px;

实现效果:

2.绝对定位:absolute,以最近一个带有定位属性的父级元素为参照点来移动位置。

若父级元素没有定位属性,就以body为参照点,默认值为position:relative。

<div class="box">

<div class="box1"></div>

.box{

width: 100px;

height: 100px;

background-color: green;

position: relative;

left: 100px;

top: 100px;

}

.box1{

width: 50px;

height: 50px;

background-color: red;

position: absolute;

top: 50px;

left: 50px;

}

实现效果:

父级元素没有定位属性的实现效果:

3.绝对固定定位:fixed,固定在网页的某一位置,无论怎么滚动网页它都不会移动位置。

<div class="box">

<div class="box1"></div>

</div>

<div class="place"></div>

.box1{

width: 50px;

height: 50px;

background-color: red;

position: fixed;

top: 50px;

left: 50px;

}

.place{

width: 50px;

height: 1000px;

background-color: pink;

}

实现效果:

无论如何滚动鼠标,向下滑动时,红色的小方块始终固定在原来位置不会移动。

注意点:

①元素移动后,原来的位置不会空出来,所以新元素不会占领原来的位置。

②考虑absolute会出现脱离文档流的情况,而relative不会。

效果图:

absolute出现脱离文档流的情况:

效果图:

五、diaplay

1.值

①none:隐藏该元素

②block:将元素转为块级元素

③inline:将元素转为行内元素

④inline-block:将元素转为行内块元素,可以指定宽高并且不换行。(未指定宽高则根据内容撑开)

2.去除元素间空白间隙

【inline-block】 【inline】元素之间会有空白间隙

1.在你的HTML代码里元素间不留任何空白。

2.父元素设置font-size:0。

相关推荐
Kagol2 小时前
🎉OpenTiny NEXT-SDK 重磅发布:四步把你的前端应用变成智能应用!
前端·开源·agent
GIS之路3 小时前
ArcGIS Pro 中的 notebook 初识
前端
JavaGuide3 小时前
7 道 RAG 基础概念知识点/面试题总结
前端·后端
ssshooter4 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
格砸4 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
Live000005 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉5 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化
兆子龙5 小时前
从高阶函数到 Hooks:React 如何减轻开发者的心智负担(含 Demo + ahooks 推荐)
前端
狗胜5 小时前
测试文章 - API抓取
前端