我试图用CSS完成下面的模型。我很接近了,如代码片段所示。但下面的调整是,当我试图使他们,事情出了差错。
1.标签未显示
1.温度计内部需要有分隔器
1.需要移动“36”和指针以匹配进度条
1.反向着色. mix-blend-mode: difference;
可能会起作用,但会给出一种奇怪的米色,而不是黑色或白色。
<html lang="en">
<head>
<style>
body * {
box-sizing: border-box;
}
body {
background-color: blue;
}
#actual {
font-size: 40px;
color: white;
}
#thermometer {
border: 4px solid grey;
width: 100%;
height: 40px;
background: darkblue;
border-radius: 50vh 50vh 50vh 50vh;
float: left;
overflow: hidden;
}
#progress {
height: 100%;
background: white;
z-index: 333;
/* border-radius: 5px; */
}
.marker {
border-right: 2px solid white;
text-align: right;
padding: 2px;
float: left;
margin: 0;
color: white;
}
.labelRow {
display: flex;
flex-direction: row;
}
.label {
text-align: center;
padding: 2px;
margin: 0;
color: rgb(255, 255, 255);
mix-blend-mode: difference;
@media only screen and (max-width : 640px) {
width: 50%;
text-align: center;
}
}
.text {
display: block;
font-weight: bold;
}
#pointer {
border-bottom: 10px solid white;
border-left: 6px solid rgba(0, 0, 0, 0);
border-right: 6px solid rgba(0, 0, 0, 0);
content: "";
display: inline-block;
height: 0;
vertical-align: top;
width: 0;
transform: rotate(180deg);
}
</style>
</head>
<body>
<div id="actual" style="left: 36%">36</div>
<div id="pointer" style="left: 36%"></div>
<div id="thermometer">
<div id="progress" style="width: 36%;">
</div>
<div id="labelRow">
<div class="label" style="flex: 1;">
<span class="text">None</span>
</div>
<div class="label" style="flex: 1;">
<span class="text">Low</span>
</div>
<div class="label" style="flex: 1;">
<span class="text">Medium</span>
</div>
<div class="label" style="flex: 1;">
<span class="text">High</span>
</div>
</div>
</div>
<div id="rangeDisplay">
<div class="marker" style="width: 25%;">
<span class="text">25</span>
</div>
<div class="marker" style="width: 25%;">
<span class="text">50</span>
</div>
<div class="marker" style="width: 25%;">
<span class="text">75</span>
</div>
<div class="marker" style="width: 25%;">
<span class="text">100</span>
</div>
</div>
</body>
</html>
8条答案
按热度按时间ylamdve61#
1.未显示标签,因为CSS类未正确定位。
1.分隔符需要在温度计内部,所以我将.marker元素移到了
#progress div
内部。1.移动“36”和指针以匹配进度条。
1.使用不同的方法而不是
mix-blend-mode
将颜色更改为反向。下面是更新后的代码:
个字符
kb5ga3dv2#
我解决了你的问题:
个字符
7z5jn7bk3#
通过添加样本标签、在温度计内放置分隔线、调整“36”和指针的位置以与进度条对齐,以及更新混合模式和颜色以获得更好的可见性和清晰的对比度。
字符集
sf6xfgos4#
嗨,运行下面的代码片段,我希望这将解决你的问题。我已经改变了z索引属性和一些文本对齐。
字符集
ocebsuys5#
您的标签未显示,因为您未将其渲染到Html中。在温度计div之后添加一个具有类
labelRow
的div元素。在其中,添加4个具有类标签和文本0,25,50和100的div元素。这将在温度计下方创建一行标签。并使用flex属性均匀对齐标签。u2nhd7ah6#
做了一些修改代码。只是复制和粘贴这个.......
字符集
ekqde3dh7#
要实现所需的模型并解决上述调整,您可以对HTML和CSS代码进行以下调整:
移动温度计内的标签。调整“36”和指针的位置。反转颜色。下面是代码的更新版本:
字符集
根据需要调整边距-顶部、底部和其他值以进行微调。此代码应可帮助您实现所需的布局。
nafvub8i8#
个字符