响应式布局 怎么用css写响应式

html-css019

响应式布局 怎么用css写响应式,第1张

做响应式网站离不开CSS响应式布局查询代码写法,而在此之前,我们需要了解什么是媒体查询以及如何才CSS中引入媒体查询。

什么是媒体查询?

媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。媒体查询中可用于检测的媒体特性有width、height和color(等)。使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。

如何在CSS中引入媒体查询?

媒体查询写在CSS样式代码的最后,CSS是层叠样式表,在同一特殊性下,靠后的的样式会重叠前面的样式。

如何用CSS做响应式布局呢?

1、在HTML头部添加以下代码,用来显示兼容移动设备的显示效果。

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

参数详解:

width=device-width :宽度等于当前设备的宽度

initial-scale=1 :初始的缩放比例(默认为1)

minimum-scale=1 :允许用户缩放到的最小比例(默认为1)

maximum-scale=1 :允许用户缩放到的最大比例(默认为1)

user-scalable=no :用户是否可以手动缩放(默认为no)

2、引入包含Media的CSS文件

一般情况HTMLCSS代码都是分开写的,Media也不例外。

<link rel="stylesheet" type="text/css" href="m320.css" media="only screen and (max-width:320px)"/>

<link rel="stylesheet" type="text/css" href="m480.css" media="only screen and (min-width:321px) and (max-width:375px)"/>

3、写Media中的代码

以某个网页的响应式布局为例

结构:@media设备类型and (设备特性){样式代码}

/*媒体查询*/

/*当页面大于1200px时,大屏幕,主要是PC端*/

@media (min-width: 1200px) {

}

/*在992 和1199 像素之间的屏幕里,中等屏幕,分辨率低的PC*/

@media (min-width: 992px) and (max-width: 1199px) {

#adver .center {

width: 50%

margin: -10px 0 0 -25%

}

main .center h2 {

font-size: 40px

}

}

/*768和991像素之间的屏幕里,小屏幕,主要是PAD*/

@media (min-width: 768px) and (max-width: 991px) {

#adver .center {

width: 60%

margin: -10px 0 0 -30%

}

#adver .search, #adver .button {

font-size: 20px

}

main .center h2 {

font-size: 35px

}

}

/*在480和767像素之间的屏幕里,超小屏幕,主要是手机*/

@media (min-width: 480px) and (max-width: 767px) {

header, header .center, header .link {

height: 45px

}

header .logo, .sm-hidden,.sidebar,.md-hidden {

display: none

}

header .link {

width: 100%

line-height: 45px

}

#adver {

padding: 45px 0 0 0

}

#adver .center {

width: 70%

height: 53px

margin: -10px 0 0 -35%

}

#adver .search, #adver .button {

height: 45px

font-size: 18px

}

.sm-visible {

display: block

}

main .center h2 {

font-size: 30px

}

main .center p {

font-size: 15px

}

main figure {

width: 49.2%

}

}

/*在小于480像素的屏幕,微小屏幕,更低分辨率的手机*/

@media (max-width: 479px) {

header, header .center, header .link {

height: 45px

}

header .logo, .xs-hidden, .sm-hidden, .sidebar, .md-hidden {

display: none

}

header .link {

width: 100%

line-height: 45px

}

header .link li {

width: 25%

}

#adver {

padding: 45px 0 0 0

}

#adver .center {

width: 80%

height: 48px

margin: -10px 0 0 -40%

}

#adver .search, #adver .button {

height: 40px

font-size: 16px

}

.sm-visible {

display: block

}

footer .bottom, footer .version {

font-size: 13px

}

main .center h2 {

font-size: 26px

}

main .center p {

font-size: 14px

}

main figure {

width: 99%

}

}

响应式布局的原理就是在不同的窗口大小下显示不同的结构和样式。只要掌握好CSS的样式,响应式布局就没问题。

建议展开阅读

新人如果想快速开发出响应式网站建议使用响应式框架Bootstrap,Foundation等等......

三个部分[Viewport][网格视图][媒体查询]

1.先在head里面设置Viewport

<meta name="viewport" content="width=device-width, initial-scale=1.0">

用户可以通过平移和缩放来看网页的不同部分。

2.很多响应式都基于网格视图设计

响应式网格视图通常是 12 列,宽度为100%,在网页自动伸缩

比如CSS里面写

* {

    box-sizing: border-box

}

[class*="col-"] {

    float: left

    padding: 15px

}

.col-1 {width: 8.33%}

.col-2 {width: 16.66%}

.col-3 {width: 25%}

.col-4 {width: 33.33%}

.col-5 {width: 41.66%}

.col-6 {width: 50%}

.col-7 {width: 58.33%}

.col-8 {width: 66.66%}

.col-9 {width: 75%}

.col-10 {width: 83.33%}

.col-11 {width: 91.66%}

.col-12 {width: 100%}

这样即可在html写

<div class="row">

<div class="col-3">

<ul>

<li>标题1</li>

<li>标题2</li>

<li>标题3</li>

<li>标题4</li>

</ul>

</div>

<div class="col-9">

<h1>2333333</h1>

<p>2333333333333333333333333333333333333333333333333333333333333333333333333333333333333333</p>

<p>2333333333333333333333333333333333323333333333</p>

</div>

达到简单的响应式效果[拖拽浏览器大小查看]

图片响应式方法

div {

width: 100%

height: 400px

background-image: url('url')

background-repeat: no-repeat

background-size: contain

border: 1px solid red

}

background-size 属性设置为 "contain", 图片比例会自动缩放。

3.媒体查询主要用于针对不同的媒体类型定义不同的样式

比如我在电脑显示图片1,但是在手机显示的是图片2

详细可以私信我

rem是什么?

px,绝对长度单位,最常用

em,相对长度单位,相对于父元素,不常用

rem,相对长度单位,相对于根元素,常用于响应式布局

响应式布局的常用方案

media-query,根据不同屏幕宽度设置根元素font-size

rem,基于根元素的相对单位

rem的弊端:“阶梯性”