四、CSS高级技巧

本文介绍了前端开发中的精灵图和字体图标技术,包括它们的使用场景、优缺点。同时,讲解了CSS中的三角形制作、用户界面样式设置、文字溢出显示省略号的方法,以及布局技巧如负margin和浮动元素的处理。此外,还提到了CSS初始化的重要性和实现方式。
摘要由CSDN通过智能技术生成

1.精灵图:

    1.1为什么需要精灵图?
        为了有效减少服务器接收和发送请求的次数,提高页面的加载速度。
        核心原理:将网页中的一些小背景图像整合到一张大图中,这样服务器只需要一次请求就可以了。
    1.2精灵图的使用:
        (1)精灵技术主要针对于背景图片的使用。就是把多个小背景图片整合到一张大图片中。
        (2)这个大突破也称为sprites 精灵图/雪碧图。
        (3)移动背景图片位置,此时可以使用background-position。
        (4)移动的距离就是这个目标图片的x和y坐标。注意网页中的坐标有所不同。
        (5)因为一般情况下都是往上往左移动,所以数值是负值。
        (6)使用精灵图的时候需要精确测量,每个小背景图片的大小和位置。
    1.3精灵图的缺点:
        (1)图片文件大。
        (2)图片本身放大和缩小会失真。
        (3)图片制作完毕后更换复杂。

2.字体图标:

    2.1字体图标的产生:
        为了解决精灵图的缺点。字体图标iconfont。
        字体图标使用场景:主要用于显示网页中通用、常用的一些小图标。
        字体图标可以为前端工程师提供一种方便高效的图标使用方式,展示的是图标,本质属于字体。
    2.2字体图标的优点:
        轻量级、灵活性、兼容性。
        注意:字体图标不能替代精灵技术,只是对工作中图标部分技术的提升和优化。
    2.3精灵图与字体图标的使用场景对比:
        结构/样式简单的小图标,就用字体图标。
        结构/样式复杂的小图片,就用精灵图。

3.CSS三角的做法:

            .box2 {
            width: 0;
            height: 0;
            border: 100px solid transparent;
            border-left-color: yellow;
            margin: 100px auto;
        }                 //朝右的三角形, 宽、高必定是为0。

4.CSS用户界面样式

    4.1鼠标样式cursor
        属性值:default;小白 默认
        pointer:小手
        move:移动
        text:文本
        not-allowed:禁止
    4.2轮廓线outline
        给表单添加outline:0/none;样式之后,就可以去掉默认的蓝色边框了。
                input {
            outline: none;
        }
    4.3防止拖拽文本域resize
                textarea {
            resize: none;
        }

5.vertical-align属性应用:

    使用场景:设置图片、表单和文字对齐。(默认是基线对齐)
    官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效。
    baseline、top、mideele、bottom
    解决图片底侧空白缝隙:(原因是行内块元素会和文字的基线对齐)
        1.给图片添加vertical-align: middle/top/bottom;(提倡使用的)
        2.把图片转换为块级元素 display:block;

6.溢出的文字用省略号显示:

    (1)单行文本溢出显示省略号:
        三个条件:

/* 1.先强制一行内显示文本 */
white-space: nowrap;
/* 2.超出的部分隐藏 */
overflow: hidden;
/* 3.文字用省略号替代超出的部分 */
text-overflow: ellipsis;


    (2)多行文本溢出显示省略号:
        有较大兼容性问题,了解即可。适合于webKit内核浏览器或移动端。

/* 1.超出的部分隐藏 */
overflow: hidden;
/* 2.文字用省略号替代超出的部分 */
text-overflow: ellipsis;
/* 3.弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 4.限制在一个块元素显示的文本的行数 */
-webkit-line-clamp: 2;
/* 5.设置或检索伸缩盒对象的子元素的排列方式 */
-webkit-box-orient: vertical;

7.常见布局技巧:

    (1)margin负值的应用:
        1.让每个盒子margin往左侧移动-1px正好压住相邻盒子边框。
        2.鼠标经过某个盒子的时候,提高当前盒子从层级即可(没有定位,则加相对定位(保留位置),有定位,则加z-index)。
    (2)文字围绕浮动元素:
        原理:浮动元素不会压住文字的特性。
    (3)CSS三角强化:
        ①直角三角形:

.box1 {
            width: 0;
            height: 0;
            border-color: transparent red transparent transparent;
            border-style: solid;
            border-width: 100px 50px 0 0;
        }

8.CSS初始化:


    CSS初始化是指重设浏览器的样式。
    京东CSS代码初始化:

/* 把我们所有标签的内外边距清零 */
* {
    margin: 0;
    padding: 0
}

/* em 和i斜体的文字不倾斜 */
em,
i {
    font-style: normal
}

/* 去掉li的小圆点 */
li {
    list-style: none
}

img {
    /* border 0照顾低版本浏览器,如果图片外面包含了链接会有边框的问题。 */
    border: 0;
    /* 取消图片底侧有空白缝隙的问题 */
    vertical-align: middle
}

button {
    /* 当我们鼠标经过button按钮,鼠标会变成小手 */
    cursor: pointer
}

a {
    color: #666;
    text-decoration: none
}

a:hover {
    color: #c81623
}

button,
input {
    /* \5B8B\4F53:宋体,Unicode编码,避免浏览器解释CSS代码时出现乱码问题 */
    font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif
}

body {
    /* 抗锯齿形,让文字显示的更加清晰 */
    -webkit-font-smoothing: antialiased;
    background-color: #fff;
    font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
    color: #666
}

.hide,
.none {
    display: none
}


/* 清除浮动 */
.clearfix:after {
    visibility: hidden;
    clear: both;
    display: block;
    content: ".";
    height: 0
}

.clearfix {
    *zoom: 1
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值