Style a definitition list as simple key value set

隐身守侯 提交于 2019-12-01 05:28:18

I think this would work:

dt {
  float: left;
  clear: left;
  margin: 0;
  padding: 0 .5em 0 0;
}
dd {
  margin: 0;
  padding: 0;
}

Another option that is useful is the :after pseudo-class. You could skip the colon on each of the dt elements and have:

dt:after {
  content: ":";
}

This makes it more flexible and you can change that character across the list and website as a whole, or get rid of it if you felt like it.

To solve the wrapping problem you mentioned, you'll need to set widths on both the dt and dd elements. Or, use a table, with th for name/address etc and td for the "data". IMO a table is a semantically acceptable solution here - it is tabular data.

You could just float the dd to the left of the previous element like so.

dt { clear: left; }
dd { float: left; }

You could also add a width attribute to either for extra alignment.

dt { clear: left; width: 20%; }
dd { float: left; }

Well, you could simply let dt float: left

dt { float: left; }

or else let dt display inline:

dt { display: inline; }

You need to remove the default left margin from the dd.

dt {float:left;clear:left;margin-right:5px;}
dd {margin:0;}

I think this (uncomment first line to test for small width):

dl, dd, dt { margin: 0; }
/*dl { width: 80px; }*/
dl dt, dl dd { display: inline; }
dl dd:after { content: ' '; padding-left: 100%; }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!