美文网首页
5-1文字编排 -- 插入断行

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

作者: juicees | 来源:发表于2016-04-24 12:38 被阅读18次

知识储备

  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>

效果:

我的表单

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

相关文章

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

    知识储备 dl/dd/dtdl 标签定义了定义列表(definition list)dt 标签定义了定义列表中的项...

  • 文字编排的青春

    当我不再青春的时候,回想起我的青春,我会说写文字是我做过最让我骄傲的事。 这并不是说我是一个多么会写文字的人。 恰...

  • word常见问题及解决方案

    表格分离在两页选中表格-->右键表格属性-->行-->勾选允许跨页断行 页脚插入页码出现{PAGE*MERGEFO...

  • 断行的文字连续的情绪

    文/王志刚(预计阅读时间3分钟) 有时候,言语是一种最便捷的传播媒介;有时候,言语又变成了最迟钝的障碍物。 那些一...

  • yytext 简单使用

    计算高度 文字中插入gif图片: 插入UIview 文字添加点击事件高亮:

  • 5-5 文字编排 -- 圆形文字

    知识储备 1.SVG Path 小测试 最终效果(扣子丑了点): html 解释:透过SVG的基本方式,在

  • 编排考场

    自动编排通过设置考场数量完成多余考生的插入 我发现一个有趣的现象;如果我把考场限定为比如4场;那么在编排考场后就会...

  • MarkDown常用语法总结

    标题 表哥 文字 文字 文字 插入链接 就拿本文说吧! 插入图片 ![](图片链接) 引用别人文字 这是一个例子 ...

  • word页码

    word文档编排时候,需要插入页码。有的要求可能是从第n页开始才是页码编号为1,这时候如果直接插入页码,那么本应该...

  • 学报论文发表要求

    文字编排要求: 论文整体编排上,页面设置默认格式,行间距1.2倍左右,整洁大方,疏密得当。详情可咨...

网友评论

      本文标题:5-1文字编排 -- 插入断行

      本文链接:https://www.haomeiwen.com/subject/mxdfrttx.html