关于css布局——流 的小学问

半个月前,进入了张大大的粉丝群,大大旨在帮助我等菜鸟提升能力,净化圈内渣渣,所以,我进去了。
第一次是关于css布局等小问题,题目如下:

因为题目还算是简单,所以我也献丑了一番,虽然我做了2个小时!(渣渣!)
所以我的答案是

 dl {
        border: 1px solid gray;
        overflow: hidden;
    }
 dl dt {
        float: left;
        padding: 10px;
    }
 dl dd {
        padding: 10px;
        text-align: right;
    }

大大解答的时候,点到了我勒!!!(激动)说:这位同学的答案,用了浮动来实现,就是太啰嗦了。。。好吧,大大,我改进。

  dt {
width: 5em;
float: left; 
}   
dd{
 overflow:hidden;
  }

这个高明之处在于1、简洁明了;2、解决错位问题(width:5em;),给前面固定宽度,不至于错位。
在这里插入图片描述
当然,我们要考虑极端情况,
1,文字内容很多;
2,连续的一串英文字符;
3,没有文字内容。
当内容是连续英文符的时候,word-break属性,

word-break:break-all;

当没有文字内容的时候,

     dd:empty::before {
                      content '-';
                     color: #999;
            }

给他设定一个字符占位,就不会因为流的自身属性错位啦!

最后,大大给了自己的代码,我们都没有写到的,根据流的自身属性进行编写

  dd {
             margin: -1.5em 0 0 5em;    
            }

其他大侠的精编:
公共部分:

dl {
line-height: 1.5;
margin: 0; padding: 10px;
border: 1px solid #ccc;
background-color: #fff;    
   }
dd {
word-break: break-all;    
text-align: right;
margin-left: 0;
  }
dd:empty::before {
content: '-';    
color: #999;
}
/* absolute实现 */
dt {
position: absolute;
   }
   dd {
margin-left: 5em;    
     }
     /* flex实现 */
    dl {
display: flex;
flex-wrap: wrap;
}
    dt {
width: 5em;
    }
   dd {
width: calc(100% - 5em);
 }
 /* grid实现 */
     dl {
display: grid;
grid-template-columns: auto 1fr;
grid-column-gap: 1em;
 }

最后,勉励自己,勤敲代码,多思考!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值