5-1文字编排 -- 插入断行

知识储备

  1. dl/dd/dt
    dl 标签定义了定义列表(definition list)
    dt 标签定义了定义列表中的项目
    dd 在定义列表中定义条目的定义部分。
  2. ::after/::before
    ::after 选择器在被选元素的内容后面插入内容
    ::before 选择器在被选元素的内容前面插入内容

小练习

实现常用的自定义列表:

自定义列表

html

<dl>    
  <dt>Name:</dt>    
  <dd>bao</dd>
  <dt>Email:</dt>      
  <dd>bao@example.com</dd>        
  <dd>baobaobao@example.com</dd>          
  <dt>Location:</dt>
  <dd>Earth</dd>
</dl>

css

dl,dd,dt{ 
  margin: 0;
}
dl{ 
  padding: 2em; 
  border: 2px solid #cccccc;
}
dd,dt{    
  display: inline;
}
dd{   
 font-weight: bold;
}

dt:not(:first-child)::before{ 
   content: '\a'; 
   white-space: pre;
}

dd+dd::before{   
  content: ', ';  
  margin-left: -.25em;   
  font-weight: normal;
}

对上述的换行代码理解:

dt:not(:first-child)::before{ 
   content: '\a'; 
   white-space: pre;
}

我们需要在每一个dd后 或者 dt前加入一个换行符。
为什么选择在dt前加入换行?
因为我们有时希望一个dt对应多个dd ,例如上图的邮箱选项。如果每个dd后加换行,则又不符合我们的效果了!
而此时也会随之产生一个小问题,第一个dt我们并不希望他前面有换行,所以通过:not(:first-child)来进行过滤

更合理的设置
我们希望多个dd间用 ,分隔
所以我们加入了以下代码

dd+dd::before{   
  content: ', ';  
  margin-left: -.25em;   
  font-weight: normal;
}

dd+dd 用兄弟选择器来选中与dd相邻的下一个dd


那应用到我们更常用的表单呢?
这里我也做了尝试,但是因为我们常常需要这样的效果:

理想的效果

而非下面的样子:

不是理想的效果

于是这种方法便显得比较尴尬,因为当我们需要设置label为text-align:right(当lable不是内联元素,有宽时有效)

如此一想,我们设置display:inline-block不就解决了么?

我们仔细思考一下,当我们设置了display:inline-block,换行失效了

content: '\a';
white-space: pre;

当然我们可以用其他方法来实现,但是html结构略显得复杂了,我给出了自己的一种方法:
html

<form>    
<ul>      
    <li>       
      <label for="username">Username:</label>                  
      <input id="username" type="text" placeholder="your name">
    </li>   
    <li>    
      <label for="email">Email:</label>            
      <input id="email" type="email" placeholder="xxx@example.com">  
    </li>     
    <li>     
       <label for="phone">Telephone Num:</label> 
       <input id="phone" type="number" placeholder="input your telephone num">    
    </li>  
  </ul>
</form>

效果:

我的表单

总结:设计一个简约的表单往往比一些酷炫的效果使用的多!

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,357评论 1赞 92
  • Bootstrap是什么? 一套易用、优雅、灵活、可扩展的前端工具集--BootStrap。GitHub上介绍 的...
    凛0_0阅读 11,203评论 3赞 184
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 17,031评论 32赞 459
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,461评论 0赞 8
  • 网络大神都有建站日记,用来记录建站心得。我仍网络一菜鸟,日记想来是没法记录了,就来个建站歪记吧!用以记录建站或学习...
    大漠啸西风阅读 416评论 0赞 0

友情链接更多精彩内容