分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

css小细节总结

发布时间:2023-09-06 01:18责任编辑:彭小芳关键词:暂无标签

css小细节总结

1、用max-width来防止图片撑破容器

img{

  display: inline-block;

  max-width: 100%;

}

2、用pointer-event 来禁用事件

 该属性可以做:

   阻止任何点击动作的执行;

  使链接显示为默认光标(cursor: default);

  阻止触发hover和active状态

  阻止javascript点击事件的触发

.disabled{pointer-event}

3、用user-select来禁用文本选中

IE6-9不支持该属性,可以通过给body添加onselectstart = "return false"的内联javascript语句搞定

body{user-select = none;}//页面中的文本不能被选中

4、用caret-color 来自定义光标的样式

input,textarea,[contenteditable]{ caret-color: red;}

5、用table-layout来控制表格单元格的宽度

由于表格单元的宽度根据其内容进行调整,也许你设置了表格的宽度,但是不起作用,刨根究底是因为表格有个叫做table-layout 的属性,其浏览器认知为auto在作怪,当我们把这个值设置为fixed的时候,给th、td标签设置的宽度就可以起到作用了

table{

  table-laout: fixed;

  width: 100%;

}

6、用 :valid :invalid 来做表单及时验证

:required 伪类指定具有required属性的表单元素

:valid  伪类指定一个通过匹配正确的所要求的表单元素

:invalid  伪类指定一个不匹配指定要求的表单元素

  

<div class="container">
???<div class="row" style="margin-top: 2rem;">
?????<form>
???????<div class="form-group">
?????????<label>name</label>
?????????<input type="text" required placeholder="请输入名称">
???????</div>
???????<div class="form-group">
?????????<label>email</label>
?????????<input type="email" required placeholder="请输入邮箱">
???????</div>
???????<div class="form-group">
?????????<label>homepage</label>
?????????<input type="url" placeholder="请输入博客url">
???????</div>
???????<div class="form-group">
?????????<label>Comments</label>
?????????<textarea required></textarea>
???????</div>
?????</form>
???</div>
?</div>

.form-group {
?width: 32rem;
?padding: 1rem;
?border: 1px solid transparent;
}
.form-group:hover{
???border-color: #eee;
???transition: border .2s;
}

.form-group label {
???display: block;
???font-weight: normal;
}

.form-group input,.form-group textarea {
???display: block;
???width: 100%;
???line-height: 2rem;
???padding: .5rem .5rem .5rem 1rem;
???border: 1px solid #ccc;
???outline: none;
}
.form-group input:valid ,.form-group textarea:valid ?{
???border-color: #429032;
???box-shadow: inset 5px 0 0 #429032;
}
.form-group input:invalid ,.form-group textarea:invalid ?{
???border-color: #D61D1D;
???box-shadow: inset 5px 0 0 #D61D1D;
}

7、用:target来实现折叠面板

<div class="container">
???<div class="row" style="margin-top: 2rem;">
?????<div class="t-collapse"><a class="collapse-target" href="#modal1">target 1</a>
???????<div class="collapse-body" id="modal1">
?????????<a class="collapse-close" href="#">target 1</a>
?????????<p>
??????????css3 明确规定了伪类用一个冒号:来表示,而伪元素则用两个冒号::来表示。
??????????伪类更多的定义的是状态,如:hover,或者说是一个可以使用CSS进行修饰的特定的特殊元素,如:first-child
??????????常见伪类::hover :active :focus :visited :link :lang :first-child :last-child :not
?????????</p>
???????</div>
?????</div>
?????<div class="t-collapse"><a class="collapse-target" href="#modal2">target 2</a>
???????<div class="collapse-body" id="modal2">
?????????<a class="collapse-close" href="#">target 2</a>
?????????<p>
??????????伪元素简单来说就是不存在于DOM文档树中的虚拟的元素,它们和HTML元素一样,但是你又无法使用JavaScript去获取,如:before
??????????常见伪元素:::before ::after ::first-letter ::first-line
?????????</p>
???????</div>
?????</div>
???</div>
?</div>

.t-collapse {
?border: 1px solid #ccc;
?margin-top: -1px;
?&:first-child {
???margin-top: 0;
?}
?.collapse-target,.collapse-close {
???cursor: pointer;
???height: 3rem;
???line-height: 2rem;
???padding: .5rem 2rem;
???text-decoration: none;
???user-select: none;
???background: #eee;
?}
?>.collapse-target {
???display: block;
?}
?>.collapse-body {
???position: relative;
???display: none;
???padding: 2rem;
???.collapse-close {
?????display: none;
?????position: absolute;
?????top: -3rem;
?????width: 100%;
?????left: 0;
???}
???&:target {
?????display: block;
?????.collapse-close {
???????display: block;
???????border-bottom: 1px solid #ddd;
?????}
???}
?}
}

8、用:not来排除其他选择器

用以设置表单元素在readonly和disabled状态之外的hover等状态,以便于当元素在readonly和disabled时,元素不具有hover状态

@mixin buttonStyle ($border, $background, $color, $hoverBorder, $hoverBackground, $hoverColor) {
???color: $color;
???border-color: $border;
???background-color: $background;
???&:not(.readonly):not([readonly]):not(.disabled):not([disabled]) {
???????&:hover,
???????&:active {
???????????color: $hoverColor;
???????????border-color: $hoverBorder;
???????????background-color: $hoverBackground;
???????}
???}
}

9、用:nth-child(even/odd)来实现隔行变色

ul {
?&.odd {
???>li:nth-child(odd) {
?????background: red;
???}
?}
?&.even {
???>li:nth-child(even) {
?????background: green;
???}
?}
}

10、用::selection来美化选中文本

::selection{
color: #fff;
background-color: #6bc30d;
}

11、用::paaceholder来美化占位符

input::-webkit-input-placeholder{
???color: #f00;
}
input::-moz-placeholder{
????color: #f00;
}
input:-ms-input-placeholder{
????color: #f00;
}

12、用::first-letter来实现段落首字下沉

p::first-letter{
?font-size: 6em;
?line-height: 1;
?float: left;
}

13、用 ::first-line 来特殊标记段落第一行

p::first-line{
?color: red
}

14、用 font-size:0 来清除间距

<div class="items">
?<div class="item">1</div>
?<div class="item">2</div>
?<div class="item">3</div>
?<div class="item">4</div>
</div>

*{
?box-sizing: border-box;
}
.items {
?font-size: 0;
?> .item {
???display: inline-block;
???width: 25%;
???height: 50px;
???border: 1px solid #ccc;
???text-align: center;
???line-height: 50px;
???background-color: #eee;
???font-size: 16px; //不要忘了给子元素设置字号
?}
}

css小细节总结

原文地址:http://www.cnblogs.com/new-Spring/p/7676259.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved