1. 首页
  2. 前端

工作中常用CSS基础知识整理汇总

CSS常用样式

一、文本样式

1、文字超出部分显示省略号

单行文本的溢出显示省略号(一定要有宽度)

p{
width:200rpx;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}

2、多行文本溢出显示省略号

p {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}

二、 文字垂直居中

1、单行文字的垂直居中

解决方案:line-height 方法

height 和 line-height 同样的高度

.box{
width:200px;
height:100px;
line-height:100px;
}

2、多行文字的垂直居中

解决方案:vertical-align 方法

.box{
width:500px;
height:100px;
vertical-align:middle;
display:table-cell;
}

3、首行缩进

这是一段内容文字,这是一段内容文字

4、首字下沉

p:first-letter{
font-size:40px;
float: left;
color:red;
}

5、中英文自动换行

  • word-break:break-all;只对英文起作用,以字母作为换行依据
  • word-wrap:break-word; 只对英文起作用,以单词作为换行依据
  • white-space:pre-wrap; 只对中文起作用,强制换行
  • white-space:nowrap; 强制不换行,都起作用

p{
word-wrap: break-word;
white-space: normal;
word-break: break-all;
}

6、文字阴影

text-shadow 为网页字体添加阴影,通过对text-shadow属性设置相关的属性值。

属性与值的说明如下:

text-shadow: [X-offset,Y-offset,Blur,Color];

X-offset:指阴影居于字体水平偏移的位置。

Y-offset:指阴影居于字体垂直偏移的位置。

Blur:指阴影的模糊值。

color:指阴影的颜色;

h1
{
text-shadow: 5px 5px 5px #FF0000;
}

7、设置 input 中 placeholder 的字体样式

input::-webkit-input-placeholder { /* Chrome/Opera/Safari */
color: red;
}
input::-moz-placeholder { /* Firefox 19+ */
color: red;
}
input:-ms-input-placeholder { /* IE 10+ */
color: red;
}
input:-moz-placeholder { /* Firefox 18- */
color: red;
}

二、布局样式

1、div 垂直居中

固定高宽 div 垂直居中

.box{
position: absolute;
top: 50%;
left: 50%;
background-color: red;
width: 100px;
height: 100px;
margin: -50px 0 0 -50px;
}

不固定高宽 div 垂直居中的方法

方法一:伪元素和 inline-block / vertical-align(兼容 IE8)

.box-wrap:before {
content: ”;
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em; //微调整空格
}
.box {
display: inline-block;
vertical-align: middle;
}

方法二:flex(不兼容 ie8 以下)

.box-wrap {
height: 300px;
justify-content:center;
align-items:center;
display:flex;
background-color:#666;
}

方法三:transform(不兼容 ie8 以下)

.box-wrap {
width:100%;
height:300px;
background:rgba(0,0,0,0.7);
position:relative;
}
.box{
position:absolute;
left:50%;
top:50%;
transform:translateX(-50%) translateY(-50%);
-webkit-transform:translateX(-50%) translateY(-50%);
}

方法四:设置 margin:auto(该方法得严格意义上的非固定宽高,而是 50%的父级的宽高。)

.box-wrap {
position: relative;
width:100%;
height:300px;
background-color:#f00;
}
.box-content{
position: absolute;
top:0;
left:0;
bottom:0;
right:0;
width:50%;
height:50%;
margin:auto;
background-color:#ff0;
}

2、清除浮动

方法一:父级 div 定义 height

  • 原理:父级 div 手动定义 height,就解决了父级 div 无法自动获取到高度的问题。
  • 优点:简单,代码少,容易掌握
  • 缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级 div 不一样时,会产生问题
  • 建议:不推荐使用,只建议高度固定的布局时使用。

.div1{background:#000080;border:1px solid red;/*解决代码*/height:200px;}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.rightright{float:rightright;width:30%;height:80px;background:#DDD}


<div class="div1">
    <div class="left">Left</div>
    <div class="right">Right</div>
</div>
<div class="div2">
    div2
</div>

方法二:结尾处加空 div 标签 clear:both

原理:添加一个空 div,利用 css 提高的 clear:both 清除浮动,让父级 div 能自动获取到高度

优点:简单,代码少,浏览器支持好,不容易出现怪问题

缺点:不少初学者不理解原理;如果页面浮动布局多,就要增加很多空 div,让人感觉很不爽

建议:不推荐使用,但此方法是以前主要使用的一种清除浮动方法


.div1{background:#000080;border:1px solid red;}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.rightright{float:rightright;width:30%;height:80px;background:#DDD}
/*清除浮动代码*/
.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}
.clearfloat{zoom:1}


<div class="div1 clearfloat">
    <div class="left">Left</div>
    <div class="right">Right</div>
</div>
<div class="div2">
    div2
</div>

方法三:父级 div 定义 overflow:hidden

原理:必须定义 width 或 zoom:1,同时不能定义 height,使用 overflow:hidden 时,浏览器会自动检查浮动区域的高度

优点:简单,代码少,浏览器支持好

缺点:不能和 position 配合使用,因为超出的尺寸的会被隐藏。

建议:只推荐没有使用 position 或对 overflow:hidden 理解比较深的朋友使用。

.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
.left{float:left;width:20%;height:200px;background:#DDD}
.rightright{float:rightright;width:30%;height:80px;background:#DDD}


<div class="div1">
    <div class="left">Left</div>
    <div class="right">Right</div>
</div>
<div class="div2">
    div2
</div>

本文内容仅代表作者观点,不代表本站立场,如需转载,请注明出处:https://www.fangbaoguang.com/?p=984

发表评论

邮箱地址不会被公开。 必填项已用*标注

评论列表(2条)

  • erotik 2021年3月2日 上午10:30

    I dugg some of you post as I cogitated they were handy very helpful Sena Baxy Gow

  • embedded system professional developers 2021年3月5日 上午11:22

    Way cool! Some extremely valid points! I appreciate you writing this post and also the rest of the site is also really good. Georgianne Cheston Davis

联系我们

159-0364-1529

在线咨询:点击这里给我发消息

邮件:122571245@qq.com

工作时间:周一至周日,9:30-18:30,节假日休息

QR code