使用 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日

相关文章

  • CSS3实现线性渐变用法示例代码详解

    好的!下面我将详细讲解如何使用CSS3实现线性渐变,为方便理解,我将按照以下流程进行讲解: 什么是CSS3线性渐变 线性渐变语法详解 CSS3线性渐变示例1:水平渐变 CSS3线性渐变示例2:垂直渐变 1. 什么是CSS3线性渐变 CSS3线性渐变是在浏览器上一个渐变过程中颜色的变化方向是线性的,这是一种改变背景颜色的方法之一。在实际应用中,线性渐变可用于按…

    css 2023年6月9日
    00
  • IE6下position fixed失效的解决方法(亲测有效)

    下面我将对“IE6下position fixed失效的解决方法(亲测有效)”进行详细的讲解。 问题描述 许多Web开发人员都遇到过IE6下position fixed无效的问题,这是因为IE6不支持CSS中的position:fixed属性。因此在IE6中,无法将元素固定在视口的位置,而是按照文档流的顺序排列。 解决方法 为了解决这个问题,我们可以使用Jav…

    css 2023年6月10日
    00
  • 关于.prettierrc代码格式化配置方式

    Prettier 是一款代码格式化工具,可以快速地帮助程序员完成代码格式化的需求,让代码整洁可读。在使用 Prettier 的过程中,我们可以通过配置 .prettierrc 来自定义代码格式化规则。 下面,我将详细讲解关于 .prettierrc 配置的完整攻略。 创建 .prettierrc 文件 首先,我们需要在项目根目录下创建一个 .prettier…

    css 2023年6月10日
    00
  • JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴

    下面我将详细讲解如何实现“JavaScript 轮播图和自定义滚动条配合鼠标滚轮”的效果。 准备工作 在开始编写代码之前,我们需要准备以下工作: HTML 结构:轮播图和滚动条需要放在 HTML 中,并有正确的类名和 ID。 CSS 样式:为轮播图和滚动条提供基础样式,并为鼠标滚轮事件提供支持。 JavaScript 代码:实现轮播图和滚动条的逻辑,并添加鼠…

    css 2023年6月10日
    00
  • 利用JS生成博文目录及CSS定制博客

    下面是“利用JS生成博文目录及CSS定制博客”的完整攻略: 1. 生成博文目录 1.1 实现原理 利用JS生成博文目录的原理是通过JS获取博客文章的标题、对应的dom节点和锚点,然后利用DOM操作动态生成目录并插入到博客页面的特定位置。 1.2 示例代码 以下是一个简单的JS生成目录的示例代码,实现了获取所有标题,创建目录结构并添加到页面对应位置的功能。 /…

    css 2023年6月10日
    00
  • jQuery原理系列-css选择器的简单实现

    阅读相关资料:要深入了解 jQuery 基础,需要先掌握 DOM 选择器的知识。推荐阅读 MDN 上的文档,熟练掌握 CSS 选择器的语法、用法和特点。 学习实践 jQuery 源码:掌握 jQuery 常用 API 的实现原理,需要学习 jQuery 源码。刚开始可以从最基础的选择器开始自己实现,例如通过 document.querySelectorAll…

    css 2023年6月9日
    00
  • css3圆角边框和边框阴影示例

    下面是关于“CSS3圆角边框和边框阴影示例”的完整攻略: 圆角边框 首先,我们来看圆角边框的写法。可以使用border-radius属性来设置元素的边框圆角。这个属性可以取一个或多个长度或百分数值,表示四个角的圆角半径,和box-shadow属性一样,可以用逗号隔开。例如: div { border-radius: 10px; } 上面的代码会将一个div元…

    css 2023年6月10日
    00
  • Markdown.css样式简介

    Markdown.css 是一套基于 CSS 样式的,用于美化 Markdown 统一输出样式的工具。下面,我将为你详细讲解 Markdown.css 样式的使用。 一、如何引入 Markdown.css 样式 欲使用 Markdown.css 样式,需先进行引入。可以到 GitHub 下载或使用 CDN 引入样式表: <link href=&quot…

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