第11天:说好不哭

今天的内容是关于 web 在 PC 和手机上的适配问题,材料选自周杰伦的新歌“说好不哭”,以展示歌词的方式来学习今天的内容。在PC上展示效果如下:

在手机上展示效果如下:


从上面的效果可以看到,这两种布局方式完全不一样,手机上显示 3 张图,而在 PC 上显示 5 张图,并且歌词和图片的排列方式也不一样。这一切归功于我们前面介绍的 @规则 ,可以在 第7天:CSS中的选择器详解 这节课程中找到。

前面的课程多数是在手机状态下查看的页面效果,现在移动端非常普及,大多数网页都会同时适配 PC 端和手机端。那么如何即适配手机端又适配 PC 端呢?

在CSS选择器的课程中,有讲过 @ 规则,但是没有细讲,借此机会再深入讲解一下 @ 规则。今天直讲 @media 这一个规则,其它关于 @ 的规则,后面遇到后再讲。@media 通俗地讲就是为了匹配不同的媒体,根据条件的不同使用不同的 CSS 样式。下面代码中的 screen 是媒体类型,在此表示带有屏幕的设备,比如电脑、手机,还有其它的媒体类型,比如 tv;and 用来组合多个条件,这里表示且,还有 not 和 only;min-width 是媒体功能,这里表示可视区域的最小宽度。整段代码的意思是匹配带有屏幕的设备,且最小尺寸是 700 像素。:

@media screen and (min-width: 700px) {   // css}

再来看个例子,这段代码的意思是匹配带有屏幕的设备,且最小尺寸是 700 像素,最大尺寸是 900像素。

@media screen and (min-width: 700px) and (max-width: 900px) {   // css}

@media 语法规则是:

@media mediaType and|not|only (media feture) {  // css}

语法规则理解以后,看看我们今天的实例是如何做的。

实例代码

代码涉及到“说好不哭”的歌词,和我从 MV 截取的一部分图。通过 @media 来控制不同屏幕的布局效果。选择器的使用在 群里讨论的一个选择器问题(一定要看)这个课程有讲解。

<!DOCTYPE html><html lang="en">
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>media</title> <style> * { margin: 0; padding: 0; } body { background-color: #eeeeee; } .app { background-color: #eeeeee; }
.top { background-color: #eeeeee; }
.top div { height: 200px; margin-bottom: 5px; background: white; background-repeat: no-repeat; background-size: 100% 100%; background-position: 0 0; }
.top :nth-child(1) { background-image: url('./images/1-1.png'); }
.top :nth-child(2) { background-image: url('./images/1-2.png'); }
.top :nth-child(3) { background-image: url('./images/1-3.png'); }
.top :nth-child(4) { background-image: url('./images/1-4.png'); }
.top :nth-child(5) { background-image: url('./images/1-5.png'); }
.content { background-color: white; padding-bottom: 30px; }
.content p { text-align: center; padding: 10px; font-size: 17px; }
.title { font-size: 24px; color: #258BD6; font-weight: bold; border-bottom: 1px solid #eeeeee; text-align: center; width: 160px; margin: 0 auto; }
.title-active { color: red; font-size: 20px; font-weight: bold; }
.hidden { display: none; }
@media screen and (min-width: 700px) { .app { display: flex; flex-direction: row; margin-top: 30px; }
.top { width: 40%; margin-left: 30px; margin-right: 30px; }
.top div { height: 250px; }
.content { width: 60%; margin-right: 30px; }
.hidden { display: block; } }</style></head>
<body> <div class="app"> <div class="top"> <div></div> <div></div> <div></div> <div class="hidden"></div> <div class="hidden"></div> </div> <div class="content"> <h2 class="title">说好不哭</h2> <p>没有了联络后来的生活</p> <p>我都是听别人说</p> <p>说你怎么了说你怎么过</p> <p>放不下的人是我</p> <p class="title-active">人多的时候就待在角落</p> <p>就怕别人问起我</p> <p>你们怎么了你低着头</p> <p>护着我连抱怨都没有</p> <p>电话开始躲从不对我说</p> <p>不习惯一个人生活</p> <p>离开我以后要我好好过</p> <p>怕打扰想自由的我</p> <p>都这个时候你还在意着</p> <p>别人是怎么怎么看我的</p> <p>拼命解释着不是我的错是你要走</p> <p>眼看着你难过挽留的话却没有说</p> <p>你会微笑放手说好不哭让我走</p> <p>电话开始躲从不对我说</p> <p>不习惯一个人生活</p> <p>离开我以后要我好好过</p> <p>怕打扰想自由的我</p> <p>都这个时候你还在意着</p> <p>别人是怎么怎么看我的</p> <p>拼命解释着不是我的错是你要走</p> <p>眼看着你难过挽留的话却没有说</p> <p>你会微笑放手说好不哭让我走</p> <p>你什么都没有却还为我的梦加油</p> <p>心疼过了多久还在找理由等我</p> </div> </div></body>
</html>

总结

今天的内容通过一首歌来讲解 @media 适配手机和PC,使它们采用不同的布局方式。同时,课程中使用了 flex 布局,有条件的同学可以先看看这篇文章,Web 和移动端需要掌握的布局方式 - Flexbox 。后面我们会详细讲解 CSS 中的布局,这部分内容属于难点,需要提前实践,最终策底击破。大家加油。

今天打卡指令:

1.说说你使用过哪些 @ 规则?

2.直接打卡:不知不觉已过去一半,再坚持一下。


推荐阅读:

第10天:撑起CSS布局的半壁江山---盒子模型

前端小课开课啦「免费加入」

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值