border-radius 属性用于设置元素的外边框圆角。
border-radius:10px;
radius半径(圆的半径) 原理:(椭)圆与边框的交集形成圆角效果
参数值可以是数值或百分比的形式
如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写为50%
如果是一个矩形,设置为高度的一半就可以
该属性是一个简写属性,可以跟四个值,分别代表左上角,右上角,右下角,左下角
值 | 描述 |
---|---|
h-shadow | 必需。水平阴影的位置,允许负值 |
v-shadow | 必需。垂直阴影的位置,允许负值 |
blur | 可选。模糊距离。 |
spread | 可选,阴影的尺寸。 |
color | 可选,阴影的颜色。 |
inset | 可选,将外部阴影(outset)改为内部阴影。 |
注意:
默认的是外阴影(Outset),但是不可以写这个单词,否则导致阴影无效。
盒子阴影不占空间,不会影响其他盒子排列。
所谓的标准流,就是标签按照规定好默认方式排列。
以上都是标准流布局,我们前面学习的就是标准流,标准流是最基本的布局方式。
这三种布局方式都是用来摆放盒子的,盒子摆放到合适位置,布局自然就完成了。
注意:实际开发中,一个页面基本都包含了这三种布局方式
提问:如何让多个块级盒子(div)水平排列成一行?
比较难,虽然转换为行内块元素可以实现一行显示,但是他们之间会有大的空白缝隙,很难控制。
提问:如何实现两个盒子的左右对齐?
总结: 有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。
因为浮动可以改变元素标签默认的排列方式.
什么是浮动?
float
属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘选择器 {
float: 属性值;
}
属性值 | 描述 |
---|---|
none | 元素不浮动 |
left | 元素向左浮动 |
right | 元素向右浮动 |
设置浮动后元素后产生一些神奇的特性性:
脱标:浮动元素会脱离标准流,不会在保留原先的位置。
如果多个盒子都设置了浮动,则他们会按照属性值一行内显示并且顶端对齐排列。
浮动的元素是相互贴靠在一起的,不会有缝隙,如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
浮动元素会具有行内块元素特性
任何元素都可以浮动。不管原先是什么模式的元素,添加浮动之后都具有行内块元素相似的特性。
浮动元素经常和标准流父级搭配使用。
如果盒子出现乱序,那么是一定存在未浮动的盒子。
由于父级盒子很多情况下,不方便给高度。但子盒浮动又不占位置,没办法把父盒子撑起来,最后导致父盒子高度为0,进而影响下面的标准流盒子。
清除浮动本质
清除策略策略
清除方法
语法:
选择器 {
clear: 属性值;
}
属性值 | 描述 |
---|---|
left | 不允许左侧有浮动元素(清除左侧浮动的影响) |
right | 不允许右侧有浮动元素(清除右侧浮动的影响) |
both | 同时清除左右两侧浮动的影响 |
clear:both
优点:
缺点:
注意:新添加的盒子必须是块级元素。
overflow:hidden
可以给父级添加overflow
属性,将其属性值设置为hidden
,auto
或scroll
优点:代码简洁
缺点:无法显示溢出的部分
after 方式是额外标签法的升级版。也是给父元素添加
.clearfix:after {
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
/* IE6,7专有*/
*zoom : 1;
}
④双伪元素
也是给父元素添加
.clearfix:before,.clearfix:after{
content:"";
display:table;
}
.clearfix:after {
clear:both;
}
.clearfix {
*zoom:1;
}
优点:代码更简洁
缺点:需要照顾低版本浏览器
代表网站:小米、腾讯等
提问:以下情况使用标准流或者浮动能实现吗?
以上效果,标准流或浮动都无法快速实现,需要靠定位来完成。
定位 = 定位模式 + 边偏移
定位模式
定位模式决定元素的定位方式,它通过 CSS 的 position 属性来设置,其值可以分为四个。
值 | 语义 |
---|---|
static | 静态定位 |
relative | 相对定位 |
absolute | 绝对定位 |
fixed | 固定定位 |
边偏移
边偏移就是定位的盒子移动到最终位置。
边偏移属性 | 示例 | 描述 |
---|---|---|
top | top: 80px | 顶端偏移量,定义元素相对于其父元素的上边线的距离 |
bottom | bottom: 80px | 底部偏移量,定义元素相对于其父元素的下边线的距离 |
right | right: 80px | 右侧偏移量,定义元素相对于其父元素右边线的距离 |
left | left: 80px | 左侧偏移量,定义元素相对于其父元素左边线的距离 |
选择器 {
position: static;
}
绝对定位是元素在移动位置的时候,是相对于他已定位的祖先元素来说的。
特点:
所以绝对定位是脱离标准流的,需要相对定位的父盒子来框住它,才能不影响后面的布局。
加了绝对定位的盒子不能通过margin: 0 auto水平居中
但是可以通过以下计算方法实现水平和垂直居中
left:50% ; 让盒子的左侧移动到父级元素的水平中心位置
margin-left: -100px; 让盒子向左移动自身宽度的一半
.box {
position: absolute;
/* 1.left走50%,父容器宽度的一半 */
left: 50%;
/* 2.margin 负值往左边走 自己盒子宽度的一半 */
margin-left: -xx;
}
解释:子级使用绝对定位,父级则需要相对定位。
子级绝对定位不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子。
父盒子在加了相对定位后,即可以占有位置,使得子盒子限制在父盒子内显示。
总结:因为父级需要占有位置,因此是相对定位,子盒子不用占有位置,则是绝对定位。
固定定位是元素固定于浏览器的可视区的位置
主要使用场景: 可以在浏览器页面滚动时元素的位置不会改变
特点:
以浏览器的可视窗口为参照点移动元素
跟父元素没有任何关系
不随滚动条滚动
固定定位不再占有原先的位置(脱标)
固定定位也是脱标的,其实固定定位也可以看做是一种特殊的绝对定位。
粘性定位可以被认为是相对定位和固定定位的混合。
选择器 {
position:sticky;
top: 10px;
}
定位模式 | 是否脱标 | 移动位置 | 是否常用 |
---|---|---|---|
static静态定位 | 否 | 不能使用边偏移 | 很少 |
relative相对定位 | 否(占有位置) | 相对于自身位置移动 | 常用 |
absolute绝对定位 | 是(不占有位置) | 带有定位的父级 | 常用 |
fixed固定定位 | 是(不占有位置) | 浏览器可视区 | 常用 |
sticky | 否(占有位置) | 浏览器可视区 | 当前阶段少 |
在使用定位布局时候,可能会出现盒子重叠的情况。
此时,可以用 z-index 来控制盒子的前后次序。
* 选择器 {
z-index: 1;
}
加了绝对定位的盒子不能通过 margin:0 auto 水平居中。(相对定位可以
但可以通过以下方式来实现,让一个宽 30px 高 30px 的盒子垂直水平居中。
①left: 50%;
②margin-left:-15px;
③top:50%;
④margin-top:50px
实现方式
.box {
position: absolute;
/* 1.left走50%,父容器宽度的一半 */
left: 50%;
/* 2.margin 负值往左边走 自己盒子宽度的一半 */
margin-left: -xx;
}
类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现!
本质:让一个元素在页面中隐藏或者显示出来
display属性用于设置一个元素如何显示
display:none
隐藏对象
display:block
除了转化块级元素之外,同时还有显示元素的意思
visibilitys属性用于指定一个元素应可见还是隐藏。
visibilitys:visible
visibilitys:hidden
visibility:hidden
display:none
(用处更多 重点)overflow 属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度) 时,会发生什么。
属性值 | 描述 |
---|---|
visible | 不剪切内容也不添加滚动条 |
hidden | 不显示超过对象尺寸的内容,超出的部分隐藏掉 |
scroll | 不管超出内容否,总是显示滚动条 |
auto | 超出自动显示滚动条,不 |
一般情况下,我们都不想让溢出的内容显示出来,因为溢出的部分会影响布局。
但是如果有定位的盒子, 请慎用 overflow:hidden 因为它会隐藏多余的部分。
整张精灵图的左上角为原点的位置。
x轴右边走是正值,左边走是负值,y轴下边走是正值,上边走是负值。
语法格式如下:
backgroun:url() -x -y
,
其中(x,y)是所需图标需要移动的位置坐标,再配合上所需图标的尺寸大小,即可在精灵图上切割出想要的部分。
.box{
position: absolute;
width: 30px;
height: 30px;
background: url(../images/index.png) -154px -105px;
}
鼠标样式cursor
li {
cursor: pointer;
}
属性值 | 描述 |
---|---|
default | 小白,默认 |
pointer | 小手 |
move | 移动 |
text | 文本 |
not-allowed | 禁止 |
轮廓线outline
:
outline:0
; 或者outline: none
;样式后,就可以去掉默认的蓝色边框input {
outline: none;
}
textarea {
resize: none;
}
vertical-align
:
vertical-align: baseline | top | middle | bottom
值 | 描述 |
---|---|
baseline | 默认,元素放置在父元素的基线上 |
top | 把元素的顶端与行中最高元素的顶端对齐(顶线对齐) |
middle | 把此元素放置在父元素的中部(中线对齐) |
bottom | 把元素的顶端与行中最低的元素的顶端对齐(底线对齐) |
图片、表单都属于行内块元素,默认的 vertical-align 是基线对齐。
此时可以给图片、表单这些行内块元素的 vertical-align 属性设置为 middle
就可以让文字和图片垂直居中对齐了。
bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐(给图片加边框就可以看见)
主要解决办法有两种:
给图片添加 vertical-align : middle | top |bottom 等
把图片转换为块级元素 display:block;,因为块级元素不会有vertical-align 属性
必须满足三个条件:
/* 1.先强制一行内显示文本 */
white-space: nowrap; /*默认 normal 是自动换行,nowrap是强制一行显示文本*/
/* 2.超出的部分隐藏 */
overflow: hidden;
/* 3.文字用省略号替代超出的部分*/
text-overflow: ellipsis;
/*ellipsis:省略号*/
多行文本溢出显示省略号,有较大的兼容性问题,适合于webKit浏览器或移动端(移动端大部分是webKit内核)
overflow: hidden;
text-overflow: ellipsis;
/* 弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 限制在一个块元素显示的文本的行数 */
-webkit-line-clamp: 2;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
-webkit-box-orient : vertical;
当我们有多个盒子时的解决办法:
巧妙运用浮动元素不会压住文字的特性
只需要将左边图片设置为左浮动即可,文字就会被自动挤到右边去。
如何再用 margin 设置好文字与图片的距离。
页码在页面中间显示:
text-align: center
text-align: center
,行内块元素会水平居中ok以上就是对 CSS快速入门 的全部讲解啦,很感谢你能看到这儿。如果有遗漏、错误或者有更加通俗易懂的讲解,欢迎小伙伴私信我,我后期再补充完善。
pink老师入门视频教程