html 元素换行_每天一个CSS小技巧 - 插入换行

当我们在定义列表时,我们通常想得到如下的效果:

7b91be4da33f9fc3feb0409490f8a3c0.png

下面是我们的html代码:

  
Name: Lea Verou Email: lea@verou.me Location: Earth

实际得到的效果是

dbe7956dcfa21a051daa1759df888c7b.png

当我们想得到最上面的效果时,第一步通常是:

  
e1754622b9b6c9944b1222cd9e740240.png

因为

和是 块级元素,所以所有的名和值都各占一行,我们可能通过改变或的display属性来做尝试:
    dd, dt{      display: inline;    }
332efbc8ee25a9607fc136416d2e3eea.png

解决方案

如上,我们缺少几个换行

实际上有一个Unicode字符专门代表换行符:0x000A。在CSS中,我们可以用"A"表示,我们可以把它作为::after伪元素的内容,添加到dd的尾部,但是你会发现并没有什么作用,但这并不代表我们错了,而是在HTML代码中,默认情况下换行符会与相邻的其他空白符进行合并,我们这里保留源代码中的这些空白符和换行,因此我们这么做:

    dd, dt{      display: inline;    }    dd::after{      content: "A";      white-space: pre;    }    dd{      margin: 0;      font-weight: bold;    }
f21f41205e9b051f90e225b63d9bf47e.png

很明显,我们已经得到了我们想要的效果,不过如果我们尝试如下时:

51d21e9f560900b11b850ee720634507.png
2bfe0cf74066eb82bf7d8d84275049d4.png

由于我们在每个dd后面都加了一个换行符,每个值都会分到单独一行,甚至不需要换行的时候也是如此。因此我们需要采取类似if else的判断:

    dd + dt::before{      content: "A";      white-space: pre;    }    dd + dd::before{      content: ', ';      font-weight: normal;      margin-left: -.25em;    }
1d2821eac09dce2736abedb1cd8f62dc.png

另外上述的margin是为了修正逗号前的空格,尺寸是需要根据字体个尺寸调试的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值