1.添加圆角效果
border-radius:10px 20px 15px 25px 左上,右上,右下,左下。
border-radius:10px 20px 左上和右下:10px 右上和左下:20px
需要特别注意的:一个正方形,当设置圆角效果值为元素宽度一半时,显示效果为圆形。
div {
width: 200px;
height: 200px;
border: 5px solid red;
border-radius: 100px;
}
2.盒子设置内边距
div{ padding:10px 20px 30px 40px }上右下左 div{ padding:10px 20px }上下 左右
3.盒子设置外边距
div{ margin:10px 20px 30px 40px }上右下左 div{ margin:10px 20px }上下 左右
padding和margin区别:padding在边框里,margin在边框外。
4.布局模型
(1)流动模型(Flow)
流动布局模型具有2个比较典型的特征:
第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。如右侧代码编辑器中三个块状元素标签(div,h1,p)宽度显示为100%
第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)
右侧代码编辑器中内联元素标签a、span、em、strong都是内联元素。
(2)浮动模型 (Float)
CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。
float:left right;
(3)层模型(Layer)
层模型有三种形式:
(1)绝对定位(position: absolute)
如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口
position:absolute ; 相对浏览器窗口,向右移100px,向下移50px;
left:100px;
top:50px;
(2)相对定位(position: relative)
如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。 left:向右 right:向左 top:向下 bottom:向上
(3)固定定位(position: fixed)
fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。以下代码可以实现相对于浏览器视图向右移动100px,向下移动50px。并且拖动滚动条时位置固定不变。
5.absolute 和relative合作使用
(1)参照定位的元素必须是相对定位元素的前辈元素:
(2)参照定位的元素必须加入position:relative;
(3)定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
6.弹性盒模型:flex
1、设置display: flex属性可以把块级元素在一排显示。
2、flex需要添加在父元素上,改变子元素的排列顺序。
3、默认为从左往右依次排列,且和父元素左边没有间隙。
横轴- 使用justify-content属性设置横轴排列方式:
justify-content: flex-start;交叉轴的起点对齐
flex-end:右对齐
center:居中对齐
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
4.竖轴- align-items属性,本属性定义了项目在交叉轴上的对齐方式。属性值分别为:
align-items:flex-start 默认值,左对齐| flex-end 交叉轴的终点对齐| center 交叉轴的中点对齐| baseline 项目的第一行文字的基线对齐| stretch:如果项目未设置高度或设为auto,将占满整个容器的高度。
5.给子元素设置flex占比
(1)给子元素设置flex属性,可以设置子元素相对于父元素的占比。
(2)flex属性的值只能是正整数,表示占比多少。
(3)给子元素设置了flex之后,其宽度属性会失效。