CSS 左对齐文本图标不起作用
CSS for a left-aligned text icon not working
我正在尝试制作一个简单的网站编辑器,我想制作一个左对齐图标,例如:
因为我找不到我喜欢的 SVG,而且我不能使用 PNG(请使用矢量),所以我想在 HTML 中制作自己的 SVG。
我试过了:
div#format-controls div#text-align-controls div.text-align-control
{
width: 24px;
height: 24px;
bottom: 0px;
max-width: 10%;
max-height: 100%;
display: inline-block;
}
div#format-controls div#text-align-controls div.text-align-control span
{
width: 100%;
height: calc(100% / 8);
padding: 0px;
display: inline-block;
color: black;
background: black;
}
<div id="format-controls">
<div id="text-align-controls">
<div id="left-text-align" class="text-align-control">
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
</div>
</div>
</div>
但这绝对不是我想要的。我想要突出显示的内容:
关于如何实现此目标的任何想法?
根据评论,您可以使用建议网站中的图标。
但如果您仍然想使用CSS来创建左对齐图标,请修改CSS如下。
div#format-controls div#text-align-controls div.text-align-control
{
width: 24px;
height: 24px;
bottom: 0px;
max-width: 10%;
max-height: 100%;
display: inline-block;
}
div#format-controls div#text-align-controls div.text-align-control span
{
width: 100%;
height: calc(100% / 8);
padding: 0px;
display: block;
margin-bottom: 3px;
color: black;
background: black;
}
div#format-controls div#text-align-controls div.text-align-control span:last-of-type{
margin:0;
}
div#format-controls div#text-align-controls div.text-align-control span:nth-child(2n){
width: 80%;
}
div#format-controls div#text-align-controls div.text-align-control.selected{
background: #E8F0FE;
padding: 10px;
border-radius: 3px;
}
div#format-controls div#text-align-controls div.text-align-control.selected span{
background: #1A73E8;
}
<div id="format-controls">
<div id="text-align-controls">
<div id="left-text-align" class="text-align-control">
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
</div>
</div>
</div>
<p>For selected state check below icon's html and extra css</p>
<div id="format-controls">
<div id="text-align-controls">
<div id="left-text-align" class="text-align-control selected">
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
</div>
</div>
</div>
您为一个简单的图标使用了很多代码。它可以用一个元素和几行 CSS
来完成
.icon {
width:24px;
height:24px;
display:inline-block;
border:10px solid transparent;
background:
linear-gradient(currentColor 0 0) 0 0,
linear-gradient(currentColor 0 0) var(--p,0) calc(100%/3),
linear-gradient(currentColor 0 0) 0 calc(2*100%/3),
linear-gradient(currentColor 0 0) var(--p,0) 100%;
background-size:100% 3px, 75% 3px;
background-repeat:no-repeat;
}
.right { --p:100%;}
.center { --p:50%;}
.full {background-size:100% 3px;}
.active {color:#1A73E8;background-color:#E8F0FE}
<div class="icon"></div>
<div class="icon active"></div>
<div class="icon right"></div>
<div class="icon right active"></div>
<div class="icon center"></div>
<div class="icon center active"></div>
<div class="icon full"></div>
<div class="icon full active"></div>
我正在尝试制作一个简单的网站编辑器,我想制作一个左对齐图标,例如:
因为我找不到我喜欢的 SVG,而且我不能使用 PNG(请使用矢量),所以我想在 HTML 中制作自己的 SVG。
我试过了:
div#format-controls div#text-align-controls div.text-align-control
{
width: 24px;
height: 24px;
bottom: 0px;
max-width: 10%;
max-height: 100%;
display: inline-block;
}
div#format-controls div#text-align-controls div.text-align-control span
{
width: 100%;
height: calc(100% / 8);
padding: 0px;
display: inline-block;
color: black;
background: black;
}
<div id="format-controls">
<div id="text-align-controls">
<div id="left-text-align" class="text-align-control">
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
</div>
</div>
</div>
但这绝对不是我想要的。我想要突出显示的内容:
关于如何实现此目标的任何想法?
根据评论,您可以使用建议网站中的图标。 但如果您仍然想使用CSS来创建左对齐图标,请修改CSS如下。
div#format-controls div#text-align-controls div.text-align-control
{
width: 24px;
height: 24px;
bottom: 0px;
max-width: 10%;
max-height: 100%;
display: inline-block;
}
div#format-controls div#text-align-controls div.text-align-control span
{
width: 100%;
height: calc(100% / 8);
padding: 0px;
display: block;
margin-bottom: 3px;
color: black;
background: black;
}
div#format-controls div#text-align-controls div.text-align-control span:last-of-type{
margin:0;
}
div#format-controls div#text-align-controls div.text-align-control span:nth-child(2n){
width: 80%;
}
div#format-controls div#text-align-controls div.text-align-control.selected{
background: #E8F0FE;
padding: 10px;
border-radius: 3px;
}
div#format-controls div#text-align-controls div.text-align-control.selected span{
background: #1A73E8;
}
<div id="format-controls">
<div id="text-align-controls">
<div id="left-text-align" class="text-align-control">
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
</div>
</div>
</div>
<p>For selected state check below icon's html and extra css</p>
<div id="format-controls">
<div id="text-align-controls">
<div id="left-text-align" class="text-align-control selected">
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
<span class="left-text-align-1"></span>
<span class="left-text-align-2"></span>
</div>
</div>
</div>
您为一个简单的图标使用了很多代码。它可以用一个元素和几行 CSS
来完成.icon {
width:24px;
height:24px;
display:inline-block;
border:10px solid transparent;
background:
linear-gradient(currentColor 0 0) 0 0,
linear-gradient(currentColor 0 0) var(--p,0) calc(100%/3),
linear-gradient(currentColor 0 0) 0 calc(2*100%/3),
linear-gradient(currentColor 0 0) var(--p,0) 100%;
background-size:100% 3px, 75% 3px;
background-repeat:no-repeat;
}
.right { --p:100%;}
.center { --p:50%;}
.full {background-size:100% 3px;}
.active {color:#1A73E8;background-color:#E8F0FE}
<div class="icon"></div>
<div class="icon active"></div>
<div class="icon right"></div>
<div class="icon right active"></div>
<div class="icon center"></div>
<div class="icon center active"></div>
<div class="icon full"></div>
<div class="icon full active"></div>