带有青色背景的废文本是一个标签,我希望标签出现在待办事项栏上方......有点像这样:
就像一个大矩形上面的小矩形。所以标签将位于待办事项栏的左上角。我将如何实现这一目标?我试过为标签设置边距,但根本没有效果。
标签的 CSS (style.css)
.tag {
color: white;
font-size: 15px;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
background: #36d1dc;
padding: 3px;
border-radius: 5px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
标记部分的 React JS 代码 (Todo.js)
<li className={`todo-item${todo.completed ? "completed" : ""}`}>
{isSpent && <p className="tag">Spent</p>}
{isReceived && <p className="tag">Received</p>} ${text}
</li>
如果有人需要整个 todo.css
文件:https://pastecode.io/s/s5XZ9e3DRW
如果您需要更多信息,或者如果我的问题措辞不当,请告诉我。很感谢任何形式的帮助。谢谢!
答案 0 :(得分:1)
我会采用这样的方法,例如,如果输入有任何值,input:focus
可以是在 .container
上设置的类。
我不明白你为什么在原始代码中使用 li
和 p
,因为你需要覆盖这么多东西才能让它看起来不错。
如果您想创建响应式网站,在固定像素值上使用“rem”也是首选,您只需覆盖 body
中的字体大小即可缩放所有内容。
.container {
position: relative;
display: flex;
}
body,
input {
padding: 1rem;
}
.container.selected > .todo-item,
input:focus ~ .todo-item {
transform: translateY(-1rem);
}
.todo-item {
position: absolute;
left: 1rem;
transform: translateY(1rem);
transition: transform 400ms;
}
.tag {
color: white;
font-size: 15px;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
background: #36d1dc;
padding: 3px;
border-radius: 5px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
<div class="container">
<input type="number">
<div class="todo-item"><span class="tag">Spent</span></div>
<div style="padding-top: 1rem"><-- select this input</div>
</div>
<div class="selected container" style="padding-top: 2rem">
<input type="number">
<div class="todo-item"><span class="tag">Spent</span></div>
</div>
答案 1 :(得分:1)
body {
background-color: #48AEE0;
}
.container {
height: 200px;
width: 500px;
display: flex;
flex-direction: column;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.tag {
color: white;
font-size: 15px;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
background: #36d1dc;
padding: 3px;
width: 80px;
text-align: center;
border-radius: 5px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.other {
margin: 0;
display: inline-flex;
flex-direction: column;
}
input {
height: 30px;
width: 200px;
border: white;
margin: 0;
}
<div class="container">
<div class="tag">spent</div>
<div class="others">
<input type="text">
</div>
</div>
答案 2 :(得分:0)
我想如果你将标签和导航栏分成两个不同的 div 标签并将它们放在主 div 上,例如:
<div id="wrapper">
<div id="top-left">top left div</div>
<div id="down">down side div</div>
</div>
并且 css 将类似于(在主 div 上使用网格):
#wrapper {
display: grid;
}
#top-left {
background: green;
width: 250px;
float:left;
margin-right: 20px;
}
#down {
background: blue;
float:left;
width: 500px;
}
结果是: