margin深入理解

一、  使用场景:
  1.  一侧定宽的自适应布局
  2.  两端对齐布局
  3.  等高布局

二、 margin百分比单位:
   普通元素的百分比margin都是相对于容器的宽度计算的,例如div的width:300px;则margin:10%,则 代表margin的上下左右都是30px;
   绝对定位元素的百分比margin是相对于第一个定位祖先元素(relative/absolute/fixed)的宽度计算的;

三、应用场景: a.宽高2:1自适应矩形;

四、margin重叠通常发生的情况:
   block 水平元素(不包括float和absolute元素);
   不考虑writing-mode,只发生在垂直方向(margin-top/margin-bottom);(writing-mode可 以使文字垂直方向显示)
五、margin重叠的3种情景:
   相邻的兄弟元素,例如两个p元素的margin:1em,理论p的间距应该为2em,实际则为1em,
   父级和第一个/最后一个元素,  
   空的block元素,
六、解决父级和第一个/最后一个元素margin重叠的问题:
    1、在父级上添加overflow:hidden属性
   2、若存在border:1px solid #DDD;/padding:1px; 则可以解决重叠
   3、可以在第一个元素之前加上空格 或者给父级添加上height

七、空block元素margin重叠条件:
   1、元素没有border/padding/inline设置
   2、没有height/min-height

八、margin:auto的机制:
 auto属性默认的是对整个容器进行分配,解决办法:
 水平方向若为行内元素,则将display设置为block显示,则auto可产生垂直方向若父级高度设定,子级元素的高度小于父  级,则可生效;若子级元素大于父级元素,则auto 失效,因为margin 为负值,不能产生效果。
九、垂直方向的的垂直居中:

  writing-mode更改流为垂直方向,实现垂直方向的margin:auto 居中;
  使用absolute,则可以使用margin:auto居中;

十、margin 无效情况解析:
   1、inline水平元素的垂直margin无效
   2、display:table-cell/display:table-row等声明的margin无效
   3、margin重叠

 4、position :absolute和margin

 5、内联特性导致的margin无效

十一、关于margin-start 和margin-end

 1、margin-start存在兼容性问题,需写兼容性,效果等同于margin-left,此为正常流向;

2、从右向左流向时候,margin-start等同于margin-right;

3、垂直流向时候,margin-start等同于margin-top。

 同上,则 margin-end同理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的新歌页面设计和样式: 1. 新歌列表 在页面的主体区域展示新歌列表,按照发布日期或者热度排序,每首歌曲展示一张封面图和歌曲名字,用户点击可以进入歌曲播放页面。在页面右上角增加一个排序选项,让用户可以根据自己的需求选择排序方式。 2. 歌曲推荐 在新歌列表下方增加歌曲推荐区域,根据用户的喜好和历史听歌记录,推荐一些类似的歌曲,提高用户体验和留存率。 3. 歌曲分类 在页面的侧边栏增加歌曲分类,根据歌曲的风格和类型进行分类,比如流行、摇滚、电子、民谣等,方便用户快速找到自己喜欢的歌曲。 4. 歌手介绍 在页面的侧边栏增加歌手介绍,针对每位歌手,提供一些基本的介绍和歌曲列表,方便用户了解和深入了解自己喜欢的歌手。 5. 歌曲排行榜 在页面的侧边栏增加歌曲排行榜,根据用户的收听量和评分,展示一些热门歌曲或者榜单,提高用户互动性和用户留存率。 6. 社交分享和评论功能 在页面底部增加社交分享和评论功能,方便用户和好友互动和分享自己喜欢的音乐。 以下是样式: ``` /* 新歌列表样式 */ .new-song-list { display: flex; flex-wrap: wrap; justify-content: space-between; margin: 20px 0; } .new-song-item { width: 30%; margin-bottom: 20px; border-radius: 10px; overflow: hidden; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } .new-song-item img { width: 100%; height: 200px; object-fit: cover; } .new-song-item h3 { font-size: 16px; margin: 10px; text-align: center; } /* 推荐歌曲样式 */ .recommended-song { margin: 20px 0; } .recommended-song h2 { font-size: 20px; margin-bottom: 10px; } .recommended-song-list { display: flex; flex-wrap: wrap; justify-content: space-between; } .recommended-song-item { width: 20%; margin-bottom: 20px; text-align: center; } .recommended-song-item img { width: 80%; height: 150px; object-fit: cover; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } .recommended-song-item h3 { font-size: 14px; margin: 10px 0; } /* 歌曲分类样式 */ .song-category { margin: 20px 0; } .song-category h2 { font-size: 20px; margin-bottom: 10px; } .song-category-list { list-style: none; margin: 0; padding: 0; } .song-category-item { font-size: 14px; margin-bottom: 10px; cursor: pointer; transition: all 0.3s ease-in-out; } .song-category-item:hover { color: #f00; } /* 歌手介绍样式 */ .singer-intro { margin: 20px 0; } .singer-intro h2 { font-size: 20px; margin-bottom: 10px; } .singer-intro-list { list-style: none; margin: 0; padding: 0; } .singer-intro-item { font-size: 14px; margin-bottom: 10px; cursor: pointer; transition: all 0.3s ease-in-out; } .singer-intro-item:hover { color: #f00; } /* 歌曲排行榜样式 */ .song-ranking { margin: 20px 0; } .song-ranking h2 { font-size: 20px; margin-bottom: 10px; } .song-ranking-list { list-style: none; margin: 0; padding: 0; } .song-ranking-item { font-size: 14px; margin-bottom: 10px; cursor: pointer; transition: all 0.3s ease-in-out; } .song-ranking-item:hover { color: #f00; } /* 社交分享和评论样式 */ .social-share { margin: 20px 0; display: flex; justify-content: space-between; align-items: center; } .social-share .share-buttons { display: flex; } .social-share .share-buttons button { background-color: #f00; color: #fff; border: none; border-radius: 5px; padding: 10px; margin-right: 10px; cursor: pointer; transition: all 0.3s ease-in-out; } .social-share .share-buttons button:hover { background-color: #fff; color: #f00; } .social-share .comment-box { width: 60%; height: 50px; border: 1px solid #ccc; border-radius: 5px; padding: 10px; font-size: 14px; } .social-share .comment-button { background-color: #f00; color: #fff; border: none; border-radius: 5px; padding: 10px; cursor: pointer; transition: all 0.3s ease-in-out; } .social-share .comment-button:hover { background-color: #fff; color: #f00; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值