整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

CSS中如何控制在不同屏幕下样式的变化

CSS中如何控制在不同屏幕下样式的变化

我们网页中有时候需要做适配,在不同屏幕中将样式按照另一种布局来显示

废话不多说 看代码

当你的屏幕宽度小于等于360px并且大于等于321px则调用该括号里面的css代码 
@media screen and (max-width: 360px) and (min-width: 321px){ /* 你的css代码 html{ font-size: 18px; }*/ }

以上的数字大家可以按照自己的定义去修改 你学会了吗?

篇文章主要介绍下如何使网站自适应屏幕的大小。其实,这个问题并不是很难做,可以使用CSS来实现。

具体操作实例小编在下面已经写出来了:

<div id="change-color"></div>

css 代码如下:

#change-color {

width:300px;

height:300px;

margin:50px auto;

background:red;

}

这个很简单,大家都能想象出来是一个多么枯燥的页面,一个 300 × 300 像素的红色正方形在页面的中上部。学到这里的同学对于这样简单的代码应该是无压力的了。然后我们在这段 css 后面再加上一点内容,改做:

#change-color {

width:300px;

height:300px;

margin:50px auto;

background:red;

}

@media (max-width:800px){

#change-color {

width:90%;

height:300px;

margin:50px auto;

background:blue;

}

}

来一起看看这个css,这段可以分作两个部分,第一部分就是我们上面写的对 #change-color 定义的 css ,这个无需解释了。第二部分跟我们以前看到的不一样哈,但是如果去掉 @media (max-width:800px){……} 这样的结构之后,我们可以发现,剩下的内容也是对 #change-color 的定义,只是跟上面略有不同,一个是宽度发生了变化,一个是背景色改了。那么现在我们来解释一下这部分代码。

默认情况执行第一部分的定义,那么背景色就应该是红色的,宽度是300px。一切如同我们与想的一样。当浏览器内容部分的宽度小于等于800px(符合条件,最大宽度为800px)时,使用第二部分的定义,也就是宽度变成了90%,背景色变成了蓝色。

然后我们看看实际效果:当网页宽度大于800px,网页自适应宽屏。

调整窗口宽度到内容区域小于800px,网页适应屏幕窗口调整,这样现在效果实现了。

本篇属于畅想网络原创,转载地址:http://www.e-wkj.cn/xw/1824.html

用 @media 查询,你可以针对不同的媒体类型定义不同的样式。

实例

如果浏览器窗口小于 500px, 背景将变为浅蓝色:

@media only screen and (max-width: 500px) {

body {

background-color: lightblue;

}

}


添加断点

在先前的教程中我们使用行和列来制作网页,它是响应式的,但在小屏幕上并不能友好的展示。

媒体查询可以帮我们解决这个问题。我们可以在设计稿的中间添加断点,不同的断点有不同的效果。

桌面设备

手机设备

使用媒体查询在 768px 添加断点:

实例

当屏幕 (浏览器窗口) 小于 768px, 每一列的宽度是 100%:

/* For desktop: */

.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%;}

@media only screen and (max-width: 768px) {

/* For mobile phones: */

[class*="col-"] {

width: 100%;

}

}


为移动端优先设计

移动端优先意味着在设计桌面和其他设备时优先考虑移动端的设计。

这就意味着我们必须对 CSS 做一些改变。

我们在屏幕小于 768px 进行样式修改,同样在屏幕宽度大于 768px 时也需要修改样式。以下是移动端优先实例:

/* 为移动端设计: */

[class*="col-"] {

width: 100%;

}

@media only screen and (min-width: 768px) {

/* For desktop: */

.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%;}

}


其他断点

你可以根据自己的需要添加断点。

我们同样可以为平板设备和移动手机设备设置断点。

桌面设备

平板设备

手机设备

在屏幕为 600px 时添加媒体查询,并设置新的样式(屏幕大于600px但小于768px):

实例

注意两组类样式是相同的,但名称不同 (col- 和 col-m-):

/* For mobile phones: */

[class*="col-"] {

width: 100%;

}

@media only screen and (min-width: 600px) {

/* For tablets: */

.col-m-1 {width: 8.33%;}

.col-m-2 {width: 16.66%;}

.col-m-3 {width: 25%;}

.col-m-4 {width: 33.33%;}

.col-m-5 {width: 41.66%;}

.col-m-6 {width: 50%;}

.col-m-7 {width: 58.33%;}

.col-m-8 {width: 66.66%;}

.col-m-9 {width: 75%;}

.col-m-10 {width: 83.33%;}

.col-m-11 {width: 91.66%;}

.col-m-12 {width: 100%;}

}

@media only screen and (min-width: 768px) {

/* For desktop: */

.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 实例

针对桌面设备:

第一和第三部分跨越 3 列。中间部分跨域 6 列。

针对平板设备:

第一跨域 3列,第二部分跨越 9 列,第三部分跨域 12 列:

<div class="row">

<div class="col-3 col-m-3">...</div>

<div class="col-6 col-m-9">...</div>

<div class="col-3 col-m-12">...</div>

</div>


方向:横屏/竖屏

结合CSS媒体查询,可以创建适应不同设备的方向(横屏landscape、竖屏portrait等)的布局。

语法:

orientation:portrait | landscape
  • portrait:指定输出设备中的页面可见区域高度大于或等于宽度

  • landscape: 除portrait值情况外,都是landscape

实例

如果是竖屏背景将是浅蓝色:

@media only screen and (orientation: landscape) {

body {

background-color: lightblue;

}

}

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!