常用的CSS代码技巧

1、重置元素的CSS样式

  • {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    }
    将所有元素的内外边距都设置为0了,而正是没有了这些默认内外边距的影响,使得我们后面的CSS设置会更加的容易。

2、将图片作为背景

当给页面添加图片时,尤其需要图片是响应式的时候,最好使用background属性来引入图片,而不是标签。

这看起来使用图片会更复杂,但实际上它会使设置图片的样式变得更加容易。有了background-size, background-position和其它的属性,保持或改变图片原始尺寸和宽高比会更方便。

举个例子
HTML

<section>
    <p>Img element</p>
    <img src="aaa.jpg" alt="bicycle">
</section>

<section>
    <p>Div with background image</p>
    <div></div>
</section>

CSS

img {
    width: 300px;
    height: 200px;
}
div {
    width: 300px;
    height: 200px;
    background: url('aaa.jpg');
    background-position: center center;
    background-size: cover;
}

section{
    float: left;
    margin: 15px;
}

background引入图片的一个缺点是页面的Web可访问性会受到轻微的影响,因为屏幕阅读器和搜索引擎无法正确地获取到图像。这个问题可以通过CSS object-fit属性解决,到目前为止除了IE浏览器其他的浏览器都可以使用object-fit。

3、表格边框

HTML中的表格总是很难看的。它们很难做成响应式的,而且总体上很难改变样式。
这里有一个快速的方法来删除所有的双倍边框:border-collapse: collapse,只需设置这个属性后,表格的边框看起来就顺眼多了。

4、注释

CSS也许不是一种编程语言,但其代码仍然需要文档化。添加一些简单的注释可以将代码分类区分,方便自己和同事后期维护。

对于大的区域划分或者重要的组件可以使用下面的注释样式:

/*---------------
    #Header
---------------*/
header { }

header nav { }

/*---------------
    #Slideshow
---------------*/
.slideshow { }

对于细节和不太重要的样式可以使用单行的注释方式:

/*   Footer Buttons   */
.footer button { }

.footer button:hover { }

另外,请记住,CSS中没有//注释,只有/**/注释:

/*  正确  */
p {
    padding: 15px;
    /*border: 1px solid #222;*/
}

/*  错误  */
p {
    padding: 15px;
    // border: 1px solid #222;  
}

5、class命名

当class或者ID包含多个单词时,应使用连字符(-),CSS不区分大小写,因此不能使用驼峰式命名。同样,CSS中也不建议使用下划线连接的命名方式。

/* 正确 */
.footer-column-left { }

/* 错误 */
.footerColumnLeft { }

.footer_column_left { }
当涉及到命名时,您还可以考虑BEM,它遵循一组原则,提供基于组件并增加一致性的开发方法。

6、使用text-transform转换字母为大写

在HTML中,可以将某个单词全部写为大写字母来表达强调的含义。比如:

<h3>My name is LZQ</h3>

如果你需要将某段文字全部转化为大写,我们可以在HTML中正常书写,然后通过CSS来转化。这样可以保持上下文内容的一致性。

<div class="movie-uppercase">My name is LZQ</div>
.movie-uppercase{
    text-transform: uppercase;
}

7、角标功能

这里有一个小知识点,伪元素的 content 属性,通过 attr(xxx),可以读取到对应 DOM 元素标签名为 xxx 的属性的值。

所以,配合属性选择器,我们可以很容易的实现一些角标功能:

<div count=“5“>Message</div>
div {
    position: relative;
    width: 200px;
    height: 64px;
}

div::before {
    content: attr(count);
    ...
}

8、长词和链接

在手机屏幕上浏览文章的时候,一个长词或者内联链接可能会导致页面出现水平滚动条。使用 CSS 的 word-break 可以防止这个问题。

.article-content p {
    word-break: break-all;
}   

9、使用 display: inline-block 时奇怪的空隙

给两个或两个以上的元素设置 display: inline-block 或者 display: inline ,将会导致它们之间产生一个微小的空隙。原因是浏览器会将元素当作字词去解释,从而给每个元素之间添加一个字符的空隙。

下面的例子中,每个项目的右侧都有一个 8px 的空隙,但是使用 display: inline-block 而产生的小空隙将会使其变为 12px,这不是我们想要的效果。

li:not(:last-child) {
    margin-right: 8px;
}

通过给父元素设置 font-size: 0 可以简单地解决这个问题。

ul {
    font-size: 0;
}

li {
    font-size: 16px; /* 应该在这里重新设置字体大小,因为它会从父元素继承 `font-size: 0`。*/
}

10、压缩或拉伸图片

用 CSS 调整一张图片的大小时,如果纵横比与图片的宽高不一致,则图片会被压缩或拉伸。

解决方法很简单:使用 CSS 的 object-fit。它的功能和给背景图片设置 background-size: cover 类似。

img {
    object-fit: cover;
}

详细可以查看:https://segmentfault.com/a/1190000011874066

11、为 input 添加正确的 type

为 input 使用正确的 type。这将改善移动端的用户体验,默认弹出对应的键盘,比如tel就会弹出数字键,并使用户更容易访问。

<form action="">
    <p>
        <label for="name">Full name</label>
        <input type="text" id="name">
    </p>
    <p>
        <label for="email">Email</label>
        <input type="email" id="email">
    </p>
    <p>
        <label for="phone">Phone</label>
        <input type="tel" id="phone">
    </p>
</form>

12、改变鼠标样式

*{
    cursor:url(../images/shubiao.ico),auto;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值