时间:2023-08-09 10:15:02 | 来源:网站运营
时间:2023-08-09 10:15:02 来源:网站运营
如何构建一个响应式网站:注:“视口”(viewport),指显示网页的区域
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
div { background:green}@media screen and (min-width:350px){ div { background:red }}
@media表示媒体查询代码,上面的内容含义是,如果是屏幕设备,并且视口宽度大于等于350px那么就会把div的背景颜色设置为红色,由于代码是由上向下循序解析的,所以,背景色红色会覆盖上面的背景色绿色的代码。注:因为我们接触的设备都是有屏幕的所以screen可以省略
<link rel="style sheet" type="text/css" media="(min-width:350px)" href="index.css">
这里会告诉浏览器,视口宽度大于等于350px时才加载index.css样式文件。@import url("base.css") screen and (max-width:350px);
css中可以通过import来导入其他的样式文件,这里告诉浏览器视口宽度大于等于350px时才加载base.css样式文件。@media screen and (min-width:350px){ div { background:red }}
这里告诉浏览器视口宽度大于等于350px时把div的背景色设置为红色。<picture> <source media="(min-width: 750px)" srcset="source-medium.jpg"> <source media="(min-width: 350px)" srcset="source-small.jpg"> <img src="source.jpg"> </picture>
以上代码会根据视口宽度来适应使用不同的图片,如果视口宽度大于等于750px那么使用source-medium.js图片,否则,如果视口宽度大于等于350px使用source-small.jpg图片,否则都不满足条件使用source.jpg图片。这里source的顺序很重要,根据min-width大小按顺序进行编写,相反如果使用max-width就需要倒序编写。这样就可以根据不同大小视口使用不同大小的图片。img { max-width: 100%; }
这里声明max-width,就是要保证所有图片最大显示为其自身的100%(即最大只可以显示为自身那么大)。此时,如果包含图片的元素(比如包含图片的body或div)比图片固有宽度小,图片会缩放占满最大可用空间。为什么不用width:100%?
如果使用width:100%的话那么,图片的宽度就会是父容器的宽度,如果父容器的宽度大于图片的真实宽度,那么图片就会被拉伸变形。而max-width:100%则不会,因为宽度默认是auto那么会显示真实宽度,如果宽度大于父容器宽度,也会等比例缩放到父容器宽度
flex中没有水平和垂直的说法,只有主轴和侧轴的说法,比如,flex-direction:row,那么你的主轴方向为水平方向,侧轴方向为垂直方向,于是,justify-content: center以主轴方向对齐即当前为水平方向对齐,align-content: center以侧轴方向对齐即当前为垂直方向对齐,flex-direction:clunm反之亦然
<style> div{ width: 400px; height: 300px; margin: 200px auto; display: flex; flex-direction: row; //默认主轴方向是row即水平方向 flex-wrap: wrap; //允许换行 align-content: center; //设置侧轴方向居中 background-color: paleturquoise; } p{ width: 100px; height: 100px; line-height: 100px; background-color: rebeccapurple; text-align: center; }</style><div> <p>hello world</p></div>
水平偏移<style> ul{ list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: nowrap; /*flex-direction: row-reverse;*/ align-content:center; background-color: deeppink; } li{ width: 100px; height: 50px; text-align: center; line-height: 50px; margin-right: 1px; } li:last-child{ margin-left: auto; }</style><ul> <li>首页</li> <li>动画</li> <li>电视剧</li> <li>电影</li> <li>联系我们</li></ul>
关键词:响应