首页 > 解决方案 > CSS - 图标的垂直对齐未正确显示

问题描述

我一直在尝试让垃圾箱出现在右侧,但它们似乎放置得不是很好,我是 CSS 新手,我浏览了互联网但没有运气(或者我没有感觉)。垃圾箱似乎与背景不成比例,所以如果我想让它填充标签,它只会溢出盒子。

#container {
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
    width: 360px;
    background-color: #f7f7f7;
    margin: 100px auto;
}

.completed {
    color: gray;
    text-decoration: line-through;
}

body {
    font-family: Roboto;
    background: #FFAFBD;
    background: -webkit-linear-gradient(to right, #ffc3a0, #FFAFBD);  
    background: linear-gradient(to right, #ffc3a0, #FFAFBD); 

}

li {
    background-color: white;
    height: 40px;
    line-height: 40px;
    color: #666;
}

input {
    font-size: 18px;
    background-color: #f7f7f7;
    width: 100%;
    padding: 13px 13px 13px 20px ;
    box-sizing: border-box;
    color: #2980b9;
}

input:focus{
    background-color: white;
    border: 3px solid #2980b9;
    outline: none;
}

li:nth-child(2n){
    background-color: #f7f7f7;
}

span {
    height: 35px;
    width: 40px;
    display: inline-block;
    margin-right: 20px;
    margin: 0 auto;
    text-align: center;
    color: white;
    background-color: #e74c3c;
}

h1 {
    background-color: #2980b9;
    color: white;
    margin: 0;
    padding: 10px 20px;
    text-transform: uppercase;
    font-size: 24px;
    font-weight: normal;
}

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#plus {
    width: 20px;
    height: 20px;
    float: right;
    margin-top: 3px;
}

.remove {
    height: 20px;
    width: 15px;
}
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="assets/CSS/todo.css">
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="">
    <title>Trello</title>
</head>
<body>

    <div id="container">
        <h1>To-do List <img id="plus" src="assets/Plus.png" alt=""></h1>
        <input type="text" placeholder="Add New Todo...">

        <ul>
            <li><span><img class="remove" src="assets/Bin.png" alt=""></span> Go to potions class</li>
            <li><span><img class="remove" src="assets/Bin.png" alt=""></span> Buy New Robes</li>
            <li><span><img class="remove" src="assets/Bin.png" alt=""></span> Visit Hagrid</li>
        </ul>
    </div>


<script src="assets/JS/lib/Jquery.js"></script>
<script src="assets/JS/Custom/todos.js"></script>
</body>
</html>

我在这里先向您的帮助表示感谢。 在此处输入图像描述

标签: javascripthtmlcss

解决方案


使用弹性盒!给 your<li><span>adisplay: flex;这样您就可以控制其子项的定位(在本例中是您的<img>)。

li {
    display: flex;
}
span {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 2px 0 0;
}

这是一个工作的Codepen。这是一个很好的Flexbox指南。


推荐阅读