使用 CSS3 中@media 实现网页自适应的示例代码

下面我来详细讲解如何使用 CSS3 中@media 实现网页自适应的示例代码及其攻略。

什么是@media

@media是CSS3中的一个规则,可以用于在不同的媒体条件下为不同的设备提供不同的样式。主要用来设置针对不同输出设备如屏幕、打印机等的不同样式。

通过@media规则,可以根据不同的设备来匹配不同的样式,因此可以使用它来实现网页自适应。

使用@media的示例代码

以下是使用@media实现网页自适应的示例代码:

/* 设置屏幕宽度大于等于 768px 的设备样式 */
@media only screen and (min-width: 768px) {
  body {
    background-color: grey;
  }

  .container {
    width: 90%;
    margin: 0 auto;
  }
}

/* 设置屏幕宽度小于 768px 的设备样式 */
@media only screen and (max-width: 767px) {
  body {
    background-color: pink;
  }

  .container {
    width: 100%;
    margin: 0;
  }
}

上述代码中,我们使用@media规则分别设置了屏幕宽度大于等于 768px 和小于 768px 两种情况下的不同样式。当屏幕宽度大于等于 768px 时,我们将背景颜色设置为灰色,并将容器的宽度设置为90%,并且居中显示;而当屏幕宽度小于 768px 时,我们将背景颜色设置为粉色,并将容器的宽度设置为100% ,并且取消了居中显示。

通过这种方式,我们可以为不同的屏幕尺寸提供不同的样式,从而实现网页自适应。

示例说明

示例1:PC端和移动端样式不同的导航栏

下面我们来看一个在PC端和移动端样式不同的导航栏示例:

<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

CSS代码:

/* 导航栏的样式(适用于PC端) */
nav {
  background-color: grey;
  height: 50px;
}

nav ul {
  list-style-type:none;
  margin: 0;
  padding: 0;
}

nav li {
  display: inline-block;
  margin-right:20px;
}

nav li:last-child {
  margin-right:0;
}

nav a {
  color: white;
  text-decoration: none;
}

/* 导航栏的样式(适用于移动端) */
@media screen and (max-width: 768px) {
  nav {
    background-color: pink;
    height: auto;
  }

  nav ul {
    display: none;
    text-align: center;
  }

  nav li {
    display: block;
    margin:5px 0;
  }

  nav li:last-child {
    margin-bottom:0;
  }

  nav a {
    color:black;
    text-align:center;
    background-color: white;
    display: block;
    padding:10px;
  }

  nav a:hover {
    background-color: lightgrey;
  }

  /* 点击展开菜单后显示的导航栏 */
  nav.mobile {
    margin-top: 50px;
  }

  nav.mobile ul {
    display: none;
  }

  nav.mobile.active ul {
    display: block;
  }
}

在这个示例中,我们使用@media规则来为不同的设备提供不同的导航栏样式,当屏幕宽度小于等于 768px 时,我们将导航栏样式设置为移动端样式,否则使用PC端样式。通过这种方式,我们可以让导航栏在不同的设备上具有最佳的显示效果。

示例2:网站宽度随屏幕大小而自适应的布局

以下是一个通过@media实现网站宽度随屏幕大小而自适应的布局示例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>自适应布局示例</title>
  <style>
    /* 默认样式 */
    body {
      margin: 0;
      padding: 0;
      background-color: #ddd;
    }

    .container {
      width: 80%;
      margin: 0 auto;
      background-color: white;
      padding: 20px;
    }

    .box {
      background-color: grey;
      height: 100px;
      margin-bottom: 20px;
    }

    /* 小屏幕样式 */
    @media only screen and (max-width: 768px) {
      .container {
        width: 100%;
      }

      .box {
        height: 50px;
      }
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
  </div>
</body>
</html>

在这个示例中,我们使用@media规则设置了小屏幕样式,即当屏幕宽度小于等于768px时,将容器的宽度设置为100%,而不是默认的80%。同时,我们将盒子的高度也进行了调整。

这样,当窗口大小变化时,容器和盒子的宽度都会随之自适应,从而实现网页自适应布局效果。

通过上述两个示例,相信大家已经掌握了如何使用@media规则实现网页自适应的基本方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用 CSS3 中@media 实现网页自适应的示例代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS控制div宽度最大宽度/高度和最小宽度/高度的方法

    如果想要在CSS中控制div元素的最大宽度和高度、最小宽度和高度,在这里我来给大家讲一下详细的攻略。 设置最大宽度和高度 在CSS中设置div元素的最大宽度和高度有两个属性,分别是max-width和max-height。 max-width max-width属性设置元素的最大宽度,取值可以是具体像素值、百分比、rem等等。当元素的宽度超过了设置的最大宽度…

    css 2023年6月10日
    00
  • CSS教程:认识层叠规则互相作用

    下面给您详细讲解 “CSS教程:认识层叠规则互相作用” 的完整攻略: 1. CSS层叠 层叠是CSS的一个特性,表示CSS属性的值可以堆叠起来形成最终的渲染效果,这种渲染效果反映了CSS选择器的优先级。选择器优先级越高,对应的CSS属性值就越具有优先权,就会覆盖掉优先级较低的值。 2. CSS选择器优先级 CSS选择器优先级是用来确定哪个CSS规则应该应用到…

    css 2023年6月9日
    00
  • bootstrap精简教程_动力节点Java学院整理

    Bootstrap精简教程攻略 简介 Bootstrap是一个流行的前端框架,它简化了Web开发的过程,尤其适用于响应式设计。但是,对于初学者来说,Bootstrap的文档可能会有些复杂,因此我们整理了这份精简教程,帮助初学者更快地掌握Bootstrap的基础知识。 安装 Bootstrap可以通过多种方式安装,包括CDN(内容分发网络)和本地安装。我们推荐…

    css 2023年6月10日
    00
  • CSS中使用expression表达式

    CSS中使用expression表达式是一种动态设定CSS属性的方式。常见应用场景是在IE6/IE7浏览器中,通过表达式实现一些基于时间、窗口大小等动态效果,例如动态计算div元素的高度、宽度等。 expression表达式是一段JS代码,需要放在CSS属性值内部并用大括号“{ }”包裹起来,注意需要在第一个大括号之后添加“javascript:”前缀。 下…

    css 2023年6月10日
    00
  • margin-top塌陷问题的现象与解决的具体方法

    关于“margin-top塌陷问题”的详细讲解和解决方法如下: 什么是margin-top塌陷问题? 在网页设计中,我们常常使用margin来控制元素之间的间距。但是在某些情况下,上一个元素的margin-top值却会被下一个元素的margin-top值所代替,这样就会造成上一个元素的margin-top值消失,这个现象被称为margin-top塌陷问题。 …

    css 2023年6月10日
    00
  • html+css实现图片扫描仪特效

    实现图片扫描仪特效可以通过HTML和CSS的结合来完成。下面是具体的攻略: 步骤1:准备材料 首先,我们需要准备一张需要扫描的图片,可以是本地的图片或者是远程图片。然后,根据这张图片的大小来选择生成的小图的数量,一般来说,每行生成5个到10个小图比较合适。 步骤2:创建HTML结构 接下来,我们需要创建HTML结构,以便后续加入CSS样式。我们可以创建一个d…

    css 2023年6月10日
    00
  • CSS网页布局入门教程9:用CSS设计网站导航——横向导航

    下面我将详细讲解CSS网页布局入门教程9:用CSS设计网站导航——横向导航的完整攻略。 HTML结构搭建 首先要先在HTML中搭建好导航栏的基本结构,包括导航栏容器以及导航链接,如下所示: <nav class="nav"> <ul class="nav-bar"> <li><…

    css 2023年6月10日
    00
  • jQuery获取页面及个元素高度、宽度的总结——超实用

    jQuery获取页面及元素尺寸的总结 前言 在网页设计和开发中,经常需要获取页面元素的尺寸信息。本文将总结jQuery中获取页面和元素高度、宽度的相关方法,包括获取浏览器视口大小、文档的高度、元素的高度宽度等。 获取浏览器视口大小 在进行网页布局时,需要获取浏览器视口的大小,以便能够根据浏览器窗口的大小来动态地调整元素的位置和大小。 $(window).wi…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部