【问题标题】:How to position this element in specific way如何以特定方式定位此元素
【发布时间】:2021-09-16 19:58:09
【问题描述】:

早安!

我有简单的 HTML 和 CSS 结构,看起来像这样:

.item{
    background-color: cyan;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: table;
}
.item > div{
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}
<table style="width: 100%; margin-top: 10px;">
    <tr style="width: 100%;">
        <td style="width: 10%;"><div class="item"><div>0</div></div></td>
        <td style="width: 10%;"><div class="item"><div>1</div></div></td>
        <td style="width: 10%;"><div class="item"><div>2</div></div></td>
        <td style="width: 10%;"><div class="item"><div>3</div></div></td>
        <td style="width: 10%;"><div class="item"><div>4</div></div></td>
        <td style="width: 10%;"><div class="item"><div>5</div></div></td>
        <td style="width: 10%;"><div class="item"><div>6</div></div></td>
        <td style="width: 10%;"><div class="item"><div>7</div></div></td>
        <td style="width: 10%;"><div class="item"><div>8</div></div></td>
        <td style="width: 10%;"><div class="item"><div>9</div></div></td>
        <td style="width: 10%;"><div class="item"><div>10</div></div></td>
    </tr>
</table>
<table style="width: 100%;">
    <tr style="width: 100%;">
        <td style="width: 10%;"><div><div style="text-align: left; font-size: 12.5px;">Zdecydowanie nie polece</div></div></td>
        <td style="width: 80%;"><div><div></div></div></td>
        <td style="width: 10%;"><div><div style="text-align: right; font-size: 12.5px;">Zdecydowanie polece</div></div></td>
    </tr>
</table>

现在,在移动设备上,我想稍微改变一下这些元素的位置。但是媒体查询不是问题。我想要这样的东西:

问题是,我不能使用任何 flexbox 或网格样式方法,因为我正在为电子邮件目的制作模板。那么您知道我们如何将这种结构样式设置为来自 IMG 的结构吗?

祝你有美好的一天!

【问题讨论】:

  • 如果您是为电子邮件客户端执行此操作,我什至认为您不能使用position: relative;
  • 电子邮件不是。 ;)
  • 如果你回到你已经得到的解决方案stackoverflow.com/a/69192203/1427878,TD元素显示为inline-block,你可以通过每秒应用相对定位和/或边距来做到这一点元素 - 通过:nth-child(even),或者如果这在邮件客户端中也不起作用,则直接应用内联样式。
  • 我建议使用任何可视化编辑器来创建这封电子邮件。
  • 也许你可以等待最佳答案,我也想学习这个。但在过去,我在所有各种电子邮件客户端上拥有相同外观和感觉的方式是我的首要任务是在 Photoshop 中切片图像(具有白色背景)并将它们放入在 Outlook 中创建的表格单元格中。单元格都被指定为 0 间距,因此它看起来像一个紧凑的图像。这使我可以设置每个部分的链接。但是,白色背景部分也会有悬停。

标签: html css


【解决方案1】:

您可以在 td 上使用带有 colspan 属性的表格来实现此目的,但您必须更改标记,以便奇数和偶数位于单独的行中。 除了第二行中的第一个和最后一个元素之外,每个元素都有 colspan="2",这将是空的并且有一个 clospan="1"。

【讨论】:

    【解决方案2】:
    tbody{
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
        }
        table tr td .item{
            background: #fb5f66;
            width: 50px;
            height: 50px;
            text-align: center;
            vertical-align: middle;
            display: table-cell;
            border-radius: 50px;
        }
    
    <table>
        <tbody>
            <tr>
                <td><div class="item">0</div></td>
                <td><div class="item">2</div></td>
                <td><div class="item">4</div></td>
                <td><div class="item">6</div></td>
                <td><div class="item">8</div></td>
                <td><div class="item">10</div></td>
            </tr>
            <tr>
                <td><div class="item">1</div></td>
                <td><div class="item">3</div></td>
                <td><div class="item">5</div></td>
                <td><div class="item">7</div></td>
                <td><div class="item">9</div></td>
            </tr>
        </tbody>
    </table>
    

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2020-11-27
    • 2019-11-15
    相关资源
    最近更新 更多