作為前端,在工作中難免會遇到關於排版的問題,以下是我整理的一些關於CSS的技巧,希望對你能有幫助。 1、每個單詞的首字母大寫 一般我們會用JS實現,其實CSS就可以實現。 JS代碼: var str = 'hello world'; str.replace(/( |^)[a z]/g,(L)= L. ...
作為前端,在工作中難免會遇到關於排版的問題,以下是我整理的一些關於CSS的技巧,希望對你能有幫助。
1、每個單詞的首字母大寫
一般我們會用JS實現,其實CSS就可以實現。
JS代碼:
var str = 'hello world';
str.replace(/( |^)[a-z]/g,(L)=>L.toUpperCase()
Heool World
css實現:
text-transform:capitalize; ( 文本中每個單詞以大寫字母開頭)
text-transform的屬性值有:
uppercase (全部大寫)
lowercase (全部小寫)
capitalize (首字母大寫)
none (預設)
2、元素選中高亮
如input元素:
input:checked + .check {
color:red;
}
3、相鄰元素添加邊框
有時候我們給元素設置border-top的時候,並不想給第一個元素設置
li+li {
border-top: 1px solid red;
}
4、多列等高
display:table;
5、清除浮動的影響
display:flow-root;
6、input的size屬性
在input的type類型為text/password時,size的屬性值代表input可容納的字元的個數,除此之外size 屬性會告訴用戶端其初始寬度,寬度以 ‘px’ 的形式給出
7、position的粘粘屬性
position的屬性大家常見的應該就是absolute、fixed、static
為大家介紹一個新的屬性 sticky
position:sticky; 設置sticky的同時給元素一個(top,botton,left,right)即可使用
使用條件:
1、父元素不能overflow:hidden 或者 overflow:auto
2、必須指定 top、bottom、left、right
3、父元素的高度不能低於sticky元素的搞丟
4、sticky元素僅在其父元素內生效
8、快速重置表單元素
原始的button按鈕要重置挺麻煩的,要設置好幾個屬性
button {
background: none;
border: none;
color: inherit;
font: inherit;
outline: none;
padding: 0;
}
其實值需要設置
button {
all:unset;
}
9、文本省略號顯示
文本省略號,相信大家都很常用
這是不折行的情況
div {
white-space:nowrap;/* 規定文本是否折行 */
overflow: hidden;/* 規定超出內容寬度的元素隱藏 */
text-overflow: ellipsis;
/* 規定超出的內容文本省略號顯示,通常跟上面的屬性連用,因為沒有上面的屬性不會觸發超出規定的內容 */
}
折行
div {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box; /* 將對象作為彈性伸縮盒子模型顯示 */
-webkit-line-clamp: 4; /* 控制最多顯示幾行 */
-webkit-box-orient: vertical; /* 設置或檢索伸縮盒對象的子元素的排列方式 */
}
10、設置文本兩端對齊
div {
width: 100px;
padding: 0 10px;
background: pink;
margin-bottom: 10px;
text-align-last:justify; /* 關鍵屬性 */
}
11、給元素添加行高
當給元素添加行高我們需要分別添加到每一個元素上p、h,但是其實我們直接添加到body上就可以了
body {
line-height:1;
}
12、 css首字放大
p:first-letter{
display:block;
float:left;
margin: 5px 5px 0 0;
color:red;
font-size:1.4rem;
background:#ddd;
}
13、移除被點擊鏈接的點框
a{
outline:none 或者 outline:0
}
14、計算屬性值
div {
width:calc(100%-100px) 讓寬度為100%的減去100px
}
15、內容可編輯
<ul contenteditable="true">
<li>11111111 </li>
<li>2222222</li>
<li>3333333</li>
</ul>
16、隱藏文本的兩種方法
p{
font-size:0;
}
p{
text-indent:-1000;
}
17、圖片在指定尺寸後,如何保持比例
img {
object-fit:cover; 或者 contain
}
18、背景虛化
div {
filter:blur(2px)
}
19、設置寬度
div {
width:fill-available; // 等同於block
}
div {
width:fill-content; // 等同於inline-block
}
20、link狀態設置順序
link的四種狀態,需要按照下麵的前後順序來設置
a:link a:visited a:hover a:active
21、font-size基準
瀏覽器的預設字體大小是16px,你可以先將基準字體大小設為10px:
body {font-size:62.5%;}
後面統一採用em作為字體單位,2.4em就表示24px。
h1 {font-size: 2.4 em}
22、用圖片充當標誌
預設情況下,瀏覽器會用黑圈來充當列表標誌,你可以用圖片代替
ul li {
background-image: url("path-to-your-image");
background-repeat: none;
background-position: 0 0.5em;
}
23、取消IE的文本滾動
textarea { overflow: auto; }
24、 黑白圖像
這會讓你的彩色照片變成黑白的圖像
img.desaturate {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
}
25、使用not取消樣式
一般我們給元素添加樣式會先給所以的都添加,然後再取消我們不想要的哪個元素樣式
/* add border */.nav li { border-right: 1px solid #666;}
/* remove border */.nav li:last-child { border-right: none;}
可以直接使用:not() 偽類實現
.nav li:not(:last-child) { border-right: 1px solid #666;}
26、禁用滑鼠點擊
css3屬性,當一個元素設置之後將無法點擊
.disabled { pointer-events: none; }
27、模糊文本
.blur {
color: transparent;
text-shadow: 0 0 5px rgba(0,0,0,0.5);
}
28、禁止用戶選中文本
div {user-select: none; /* Standard syntax */}