我希望有一个固定的棋盘格背景,看起来应该像颜色选择器中的背景:
我尝试过的事情:
.chess {
background-image:
linear-gradient(90deg, #999 30px, white 30px),
linear-gradient(90deg, white 30px, #999 30px),
linear-gradient(90deg, #999 30px, white 30px),
linear-gradient(90deg, white 30px, #999 30px),
linear-gradient(90deg, #999 30px, white 30px),
linear-gradient(90deg, white 30px, #999 30px),
linear-gradient(90deg, #999 30px, white 30px);
background-position: 0 0, 0 30px, 0 60px, 0 90px, 0 120px;
background-repeat: repeat-x;
background-size: 60px 30px;
height: 150px;
margin: 15px auto;
width: 30%;
}
.fas {
text-align: center;
font-size: 10em
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.2/css/all.min.css" rel="stylesheet" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div>
<div class="btn btn-outline-secondary chess">
<i class="fas fa-car"></i>
</div>
<div>
问题:
background-repeat: round
如果可能的话,我不希望棋盘背景中的任何内容都被剪掉。
不是这样的(在右侧和底部切断):
答案 0 :(得分:3)
这是一个依靠conic-gradient但实际上仅在Chrome上受支持的想法:
.chess {
background:
conic-gradient(#fff 0deg ,#fff 90deg,
grey 90deg,grey 180deg,
#fff 180deg,#fff 270deg,
grey 270deg,grey 360deg) 0 0/25% 25%;
margin: 15px;
padding:10px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.2/css/all.min.css" rel="stylesheet"/>
<div class="chess fas fa-7x fa-car"></div>
<div class="chess fas fa-5x fa-car"></div>
<div class="chess fas fa-10x fa-user"></div>
<div class="chess fas fa-3x fa-phone"></div>
如果您希望拥有相同的尺寸并且不设截止,也可以考虑使用round
中的background-repeat
:
.chess {
background:
conic-gradient(#fff 0deg ,#fff 90deg,
grey 90deg,grey 180deg,
#fff 180deg,#fff 270deg,
grey 270deg,grey 360deg) 0 0/40px 40px round;
margin: 15px;
padding:10px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.2/css/all.min.css" rel="stylesheet"/>
<div class="chess fas fa-7x fa-car"></div>
<div class="chess fas fa-5x fa-car"></div>
<div class="chess fas fa-10x fa-user"></div>
<div class="chess fas fa-3x fa-phone"></div>
以下是使用SVG而不是渐变的类似想法,您将获得更好的支持:
.chess {
background:
url('data:image/svg+xml;utf8,<svg preserveAspectRatio="none" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="5" height="5" fill="grey" /><rect x="5" y="5" width="5" height="5" fill="grey" /><rect x="5" y="0" width="5" height="5" fill="white" /><rect x="0" y="5" width="5" height="5" fill="white" /></svg>') 0 0/25% 25%;
margin: 15px;
padding:10px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.2/css/all.min.css" rel="stylesheet"/>
<div class="chess fas fa-7x fa-car"></div>
<div class="chess fas fa-5x fa-car"></div>
<div class="chess fas fa-10x fa-user"></div>
<div class="chess fas fa-3x fa-phone"></div>
并且具有固定大小:
.chess {
background:
url('data:image/svg+xml;utf8,<svg preserveAspectRatio="none" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="5" height="5" fill="grey" /><rect x="5" y="5" width="5" height="5" fill="grey" /><rect x="5" y="0" width="5" height="5" fill="white" /><rect x="0" y="5" width="5" height="5" fill="white" /></svg>') 0 0/40px 40px round;
margin: 15px;
padding:10px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.2/css/all.min.css" rel="stylesheet"/>
<div class="chess fas fa-7x fa-car"></div>
<div class="chess fas fa-5x fa-car"></div>
<div class="chess fas fa-10x fa-user"></div>
<div class="chess fas fa-3x fa-phone"></div>
答案 1 :(得分:0)
不确定您要做什么,但是我为您创建了以下内容。它将以方格背景填满屏幕的任何宽度,而不会在较小的屏幕上被剪掉。
body {
background-image:
-moz-linear-gradient(45deg, #999 25%, transparent 25%),
-moz-linear-gradient(-45deg, #999 25%, transparent 25%),
-moz-linear-gradient(45deg, transparent 75%, #000 75%),
-moz-linear-gradient(-45deg, transparent 75%, #000 75%);
background-image:
-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, #999), color-stop(.25, transparent)),
-webkit-gradient(linear, 0 0, 100% 100%, color-stop(.25, #999), color-stop(.25, transparent)),
-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.75, transparent), color-stop(.75, #999)),
-webkit-gradient(linear, 0 0, 100% 100%, color-stop(.75, transparent), color-stop(.75, #999));
-moz-background-size:100px 100px;
background-size:100px 100px;
-webkit-background-size:100px 101px; /* override value for shitty webkit */
background-position:0 0, 50px 0, 50px -50px, 0px 50px;
}
div.fa-car {
font-size:10rem;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.2/css/all.min.css" rel="stylesheet"/>
<div class="chess fas fa-car"/>
答案 2 :(得分:-1)
使用此:
.chess {
background-image:
linear-gradient(45deg, #ccc 25%, transparent 25%),
linear-gradient(-45deg, #ccc 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #ccc 75%),
linear-gradient(-45deg, transparent 75%, #ccc 75%);
background-size: 60px 60px;
background-position: 0 0, 0 29px, 29px -29px, -29px 0px;
}
.btn {}
.fas {
color: black;
text-align: center;
font-size: 10em;
}
.fas.f5em {
font-size: 5em;
}
.fas.f35em {
font-size: 35em;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.7.2/css/all.min.css" rel="stylesheet" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div>
<div class="btn btn-outline-secondary chess">
<i class="fas fa-car"></i>
</div>
<div>
<div>
<div class="btn btn-outline-secondary chess">
<i class="fas fa-car f5em"></i>
</div>
<div>
<div>
<div class="btn btn-outline-secondary chess">
<i class="fas fa-car f35em"></i>
</div>
<div>
或者您可以使用图案图像,例如:
https://mdn.mozillademos.org/files/5705/alpha.png