CSS3备忘录2

上一篇,在这里

目录

六、常用属性

七、小技巧


六、常用属性

  属性 取值 备注
background background-color 背景颜色  
background-image 背景图片  
background-repeat 背景图片是否平铺 默认平铺
background-position 背景图片位置,取值center、left、right等  
background-attachment 背景图片是否固定,取值fixed、scroll  
background-size 背景图片大小只能通过background-size

background-size: 100px, 200px;

background-size: cover;

background-size: contain;

 

cover:会自动调整缩放比例,保证图片填满整个背景区域,如果有溢出部分则会被隐藏

contain:自动调整缩放比例,保证图片始终完整显示在背景区域,但是背景区域可能不能填满

background简写形式

background: #00a4ff url('./images/fa-search.png') center center no-repeat;

设置背景色、图片水平居中和垂直居中、不平铺

text-decoration

用于给链接修改装饰效果

none 默认,定义标准的文本 可以去标签a有下划线
underline 带有下划线  
overline 带有上划线  
line-through 文本被横线穿过,相当于删除线  
border border-width 边框的宽度  
border-color 边框的颜色  
border-style 边框的样式,取值,none、solid、dashed、dotted、double  
border-collapse:collapse 合并相邻边框  
border-radius

圆角边宽, border-radius:10px; 表示4个角弧度是10px

border-radius:50%; 显示成圆形

 
padding padding-top    
padding-right    
padding-bottom    
padding-left    
box box-sizing

取值content-box(默认值)、border-box。

在content-box模式下,当我们给一个盒子设置宽度或者高度,是不包含border、padding,也就是说此时我们再给设置border、padding会撑开盒子。

在border-box模式下,盒子的宽度和高度是包含border、padding的。

注意:两种模式都不包含margin

box-shadow

给盒子添加阴影,

box-shadow: 水平阴影 垂直阴影  模糊距离 阴影大小 阴影颜色 inset;

水平阴影、垂直阴影是必选,其他可选

inset 表示内阴影,默认是外阴影

水平阴影:正值向由,负值向左

垂直阴影:正值向下,负值向上

  text-shadow 文字阴影 与边框阴影属性值一样  
  letter-sapcing 设置字间距  
元素隐藏 display: none; 隐藏元素,原有位置不保留  
visibility:hidden 隐藏元素,原有位置保留  
overflow,取值范围visible(默认)、auto(超出显示滚动条)、hidden(超出部分隐藏)、scroll(无论是否超出都显示滚动条) 检索或者设置当前对象的内容,超过其指定高度及宽度时应该如何管理内容 其中hidden使用最多
z-index 指定叠放次序,数值越大越在上层    
outline 轮廓线 当一个文本框获得焦点后会有一个默认轮廓线,我们可以通过outline:0 /outline:none将轮廓线取消掉  
居中 文字居中 文字水平居中:text-align:center  
文字垂直居中: line-height 等于 height  
盒子居中 盒子水平居中:margin 0 auto  
盒子垂直居中:使用定位  
vertical-align 垂直对其方式,属性取值为:baseline(基线对其,默认)、middle(中线)、bottom(底线)、top(顶线)

对于块级元素无效,对行内元素、行内块元素有效。通常设置图片/表单元素与文字对齐

<div >
    <img src="logo.jpg" alt="" style="vertical-align:middle">

<a href="">找回密码</a>
</div>

img/表单元素等行内块元素默认场景下,它的底线与父元素基线对其,图片底侧会有一个白色缝隙。我们可以通过vertical-align:top 、middle来解决这个问题
text-overflow 超出的文字是否显示省略号,属性取值为:clip(不显示),ellipsis(省略号)

如果实现超出部分显示应该这样:

white-sapce:nowrap; /* 强制一行显示 */

overflow:hidden; /* 隐藏多于内容 */

text-overflow:clip; /* 直接裁剪 */

text-overflow:ellipsis; /* 显示省略号 */

 前两个属性是必须的

 

text-overflow通常用于新闻标题等
text-indent 首行缩进    
transform 应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等

rotateX\rotateX\rotateZ 按照x、y、z翻转多少度

translate3d(x,y,z) 设置运动路径

 
transform-style 属性值preserve-3d 让子盒子有3D效果 设置给父盒子,用于实现3D轮播图,做3D效果这行代码经常用

perspective

(透视)

实际是人眼到屏幕的举例,此属性和transform结合使用,达到3D效果

perspective:500px;

数值越小,效果越明显(近大远小效果)

做为属性设置给父元素,作用域所有3D转换的子元素,
backface-visibility backface-visibility:hidden; 不是正面对向屏幕则隐藏,实际是大于90度则隐藏 此属性用于两张相同大小的图片进行翻转显示

七、小技巧

技巧 说明 举例
在一行内的盒子中,设置行高等于盒子的高度,就可以使文字 垂直居中 即line-height等于height的属性值,可使文字垂直居中 div {
    width: 600px;
    height: 200px;
    text-align: center;/* 水平居中 */
    line-height: 200px;/* 垂直居中 将line-height行高等于盒子高度height */
}
当盒子内文本字数不一致,可以使用padding将其文本水平居中

1、不

需要设置盒子的宽度

2、设置padding, 上下为0,左右为实际宽度即可

nav a {
    display:inline-block;
    
    height:40px;
    line-height:40px; /*设置垂直居中*/
    /* 盒子不设置width 直接设置padding */
    padding:0 15px; /* 上下是0px 左右是15px */
}
<nav>
    <a href="#">首页</a>
    <a href="#">三个字</a>
    <a href="#">手机新浪网</a>
    <a href="#">网站导航</a>
</nav>
实现盒子水平居中,可以使用外边距margin

1、盒子必须是块级元素

2、盒子必须指定宽度width

3、通过margin auto属性设置水平居中

div {/* div是块级元素 */
    width: 200px; /* 盒子必须有宽度 */
    height: 220px;
    background-color: red;
    margin: 30px auto;/* 上下30 左右auto */
}
浏览器生成成块级元素经常有一个默认边距,可以使用margin、padding清除掉  

body {

  margin:0;

  padding:0;

}

div {

  margin:0;

  padding:0;

}

嵌套盒子(例如嵌套div),设置内部盒子的外边距,默认是不生效的,可以使用如下三种方式解决 三种解决方法 <style>
    .father {
        width: 500px;
        height: 500px;
        background-color: red;
        /* 解决方法1:设置父盒子边框 
        border: 1px solid;*/
        /* 解决方法2:设置父盒子的padding 
        padding: 5px;*/
        /* 解决方法3:最佳方式 overflow */
        overflow: hidden;
    }
    .son {
        width: 300px;
        height: 300px;
        background-color:purple;
        margin-top:30px; /* 外边框距离父div 是30px */
    }
</style>
<!-- 嵌套盒子(div) 设置内部盒子外边距 -->
<div class="father">
    <div class="son"></div>
</div>
取消列表样式  

ul {

  list-style:none;/* 取消列表默认样式(小点) */

}

隐式模式转换

 行内元素 如果添加了 绝对定位或者 固定定位后 或 浮动后,可以不用显示进行模式转换(即可以不写display),直接给高度和宽度就可以了

 
当a标签里面有图片,往往是作为背景图片,而不是插入img标签导入图片,a标签显示背景图片需要设置宽和高,但a标签属于行内元素直接设置宽高是无效的,因此需要display:block转成块元素
ul、h1标签默认有内外边距,通常我们需要取消掉内外边距

我们在开发的时候通常将logo放到h1中,为了搜索引擎优化,提升搜索的权重

让文字在图片垂直位置

两种方式:

1、定位方式

2、在图片处增加vertical-algin:center,或者指定正负像素

 
浮动的盒子例如float:left,如何居中

注意浮动的盒子使用margin 0 auto是不行的

1、在子盒子外面套一个父盒子,是父盒子进行margin 0 auto

2、采用flex伸缩布局方式

利用flex伸缩布局可以去掉盒子间的空白缝隙,例如

.copyright-link ul {

    width: 1140px;

    display: flex;/* 设置flex模式 */

    flex-direction: row; /* 行模式显示 */

    justify-content: center; /* 居中显示 */

    margin: 0 auto;

}

使用position:absolute;的元素在使用margin 0 auto水平居中,将无效。
     

下一篇,我们继续 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章