css移动端开发

1.视口

视口标签

视口元标签(Viewport Meta Tag)用于控制网页在移动设备上的视口行为,确保页面能够正确缩放和调整。通常在HTML的<head>部分添加如下代码:

<meta name="viewport" content="width=device-width, user-scalable=no, 
initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
属性解释说明
width宽度设置的是viewport宽度,可以设置device-width特殊值
initial-scale初始缩放比,大于0的数字
maximum-scal最大缩放比,大于0的数字
minimum-scale最小缩放比,大于0的数字
user-scalable用户是否可以缩放,yes或no(1或0)

标准的viewport设置:

  • 视口宽度和设备保持一致
  • 视口的默认缩放比例1.0
  • 不允许用户自行缩放
  • 最大允许的缩放比例1.0
  • 最小允许的缩放比例1.0

2.二倍图

在网页开发中,尤其是在设计高分辨率屏幕(如Retina显示屏)上使用的图像时,使用二倍图(2x图像)是一个常见的做法。二倍图的概念主要是为了适应高分辨率屏幕,确保图像在这些屏幕上看起来清晰锐利。以下是关于CSS二倍图的一些关键点和使用方法:

什么是二倍图?

二倍图(@2x images)是指其分辨率是标准分辨率图像的两倍的图像。例如,如果标准图像的尺寸是100x100像素,那么二倍图的尺寸则是200x200像素。

为什么需要二倍图?

高分辨率屏幕(如Retina屏)上的像素密度比普通屏幕高,这意味着同样大小的区域上有更多的像素。如果直接在高分辨率屏幕上使用标准分辨率的图像,这些图像可能会显得模糊不清。因此,使用二倍图可以确保图像在高分辨率屏幕上看起来更加清晰锐利。

背景缩放 background-size
background-size: 背景图片宽度 背景图片高度;
  • 单位: 长度|百分比|cover|contain;
  • cover把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。
  • contain把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域

3.flex布局

基本概念

Flexbox布局包括两个主要组件:容器(container)**和**项目(items)。容器是Flexbox布局的父元素,项目是其直接子元素。

设置Flex容器

通过将容器的display属性设置为flexinline-flex来启用Flexbox布局:

.container {display: flex; /* 或者 inline-flex */
}

1.父项常见属性

flex-direction:定义主轴(main axis)的方向及项目的排列方向。

  • row(默认值):从左到右。
  • row-reverse:从右到左。
  • column:从上到下。
  • column-reverse:从下到上。
.container {flex-direction: row;
}

justify-content:定义项目在主轴上的对齐方式。

  • flex-start(默认值):从起点对齐。
  • flex-end:从终点对齐。
  • center:居中对齐。
  • space-between:两端对齐,项目间隔均匀(先两边贴边,再平分剩余空间)。
  • space-around:项目周围间隔均匀(平分剩余空间)。
  • space-evenly:项目之间的间隔均匀。
.container {justify-content: center;
}

flex-wrap:控制项目是否在主轴上溢出时换行。

  • nowrap(默认值):不换行(此时若是容纳不下,则会缩小子盒子的宽度)。
  • wrap:换行。
  • wrap-reverse:反向换行。
.container {flex-wrap: wrap;
}

align-items:定义项目在侧轴上的对齐方式,在子项为单项(单行)的时候使用。

  • stretch(默认值):如果项目未设置高度或设置为auto,则拉伸项目以填充容器。
  • flex-start:对齐到侧轴的起点。
  • flex-end:对齐到侧轴的终点。
  • center:居中对齐。
  • baseline:项目的第一行文字基线对齐。
.container {align-items: center;
}

align-content:设置侧轴上的子元素的排列方式(多行)。如果只有一根轴线,此属性不起作用。(在有换行的时候使用)

  • stretch(默认值):轴线填充侧轴。
  • flex-start:对齐到从侧轴的起点。
  • flex-end:对齐到侧轴的终点。
  • center:居中对齐。
  • space-between:子项在侧轴先分布在两头,再平分剩余空间。
  • space-around:子项在侧轴平分剩余空间。
  • space-evenly:轴线之间的间隔均匀。
.container {align-content: space-between;
}

flex-flow:是flex-directionflex-wrap的简写。

.container {flex-flow: row wrap;
}

2.子项常见属性

flex:是flex-growflex-shrinkflex-basis的简写。

  • flex-grow: 1:表示该项目可以占据父容器中剩余的空间。如果有多个项目的 flex-grow 值都设置为 1,这些项目将平分剩余的空间。例如,如果一个容器中有两个项目,它们的 flex-grow 都为 1,那么它们将平分多余的空间。
  • flex-shrink: 1:表示当父容器的空间不足时,该项目可以缩小。如果所有项目的 flex-shrink 值都为 1,这些项目将等比例地缩小以适应父容器的空间。
  • flex-basis: 0%:表示项目的初始大小为 0。这意味着项目的大小完全由 flex-grow 属性决定,并且没有初始空间分配。
.item {flex: 1 1 100px;
}

align-self:允许单个项目在侧轴上有不同的对齐方式,覆盖align-items属性。默认值为 auto,表示继承父元素的 align-items 属性,如果没有父元素,则等同于 stretch。

  • auto(默认):继承父容器的align-items值。
  • flex-start:项目在交叉轴的起点对齐。
  • flex-end:项目在交叉轴的终点对齐。
  • center:项目在交叉轴的中心对齐。
  • baseline:项目的文本基线对齐。
  • stretch:如果项目未设置高度或高度为auto,则项目拉伸以填充容器。
.item {align-self: flex-end;
}

order:定义项目的排列顺序。默认值为0,值越小越靠前。

.item {order: 1;
}

4.rem布局

1.rem单位

REM单位是相对于根元素(通常是 <html> 元素)的字体大小来计算的。如果根元素的字体大小为16px,那么1rem就等于16px。如果根元素的字体大小为20px,那么1rem就等于20px。

/* 根html 为 12px */
html {font-size: 12px;
}
/* 此时 div 的字体大小就是 24px */ 
div {font-size: 2rem;
}

2.媒体查询

媒体查询(Media Queries)是CSS3中引入的一种强大的技术,它允许根据设备特性(如屏幕宽度、设备类型、屏幕分辨率等)来应用不同的CSS样式。这使得网站能够在不同设备上提供适当的布局和样式,从而实现响应式设计。

基本语法
@media mediatype and (media feature) {/* CSS rules */
}
  • mediatype:媒体类型,如screen(屏幕)、print(打印机)、all 等。
  • 关键字: and not only
  • media feature:媒体特性,如widthmin-widthmax-width等。
  • CSS rules:根据媒体查询条件应用的CSS规则。

关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。

and:可以将多个媒体特性连接到一起,相当于“且”的意思。

not:排除某个媒体类型,相当于“非”的意思,可以省略。

only:指定某个特定的媒体类型,可以省略。

常用的媒体特性
  1. widthheight:设备宽度和高度。
  2. min-widthmin-height:最小设备宽度和高度。
  3. max-widthmax-height:最大设备宽度和高度。
  4. orientation:设备方向,如portrait(纵向)和landscape(横向)。
  5. aspect-ratio:设备宽高比。
  6. device-aspect-ratio:设备的物理宽高比。
  7. resolution:设备分辨率。
引入资源

可以在引入css文件的时候加上媒体查询,表示在该条件下引用这个css文件

语法规范:

<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

示例:

<link rel="stylesheet" href="styleA.css" media="screen and (min-width: 400px)">

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《大道平渊》· 玖 —— 把高深的道理讲的通俗,这是一门艺术。

《平渊》 玖 "化繁为简, 点石成金。" 把高深的道理讲得通俗&#xff0c;这是一门艺术&#xff01; 讲述者能够站在群众的角度&#xff0c;用尽可能简单通俗的语言来解释复杂的概念。 讲述者需要对概念有深刻的理解&#xff0c;还要有灵活的表达能力。 群众愿意接受…

从当当网批量获取图书信息

爬取当当网图书数据并保存到本地&#xff0c;使用request、lxml的etree模块、pandas保存数据为excel到本地。 爬取网页的url为&#xff1a; http://search.dangdang.com/?key{}&actinput&page_index{} 其中key为搜索关键字&#xff0c;page_index为页码。 爬取的数据…

15- Redis 中的 整数集合 数据结构

整数集合是 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素&#xff0c;并且元素数量不大时&#xff0c;就会使用整数集合这个数据结构作为底层实现。 1. 整数集合结构设计 整数集合本质上是一块连续内存空间&#xff0c;它的结构定义如下&#xff1a; typedef s…

Chrome DevTools 使用攻略

Chrome DevTools是谷歌浏览器提供的一套强大的开发工具&#xff0c;对于前端开发人员来说是不可或缺的利器。下面将从多个方面介绍Chrome DevTools的使用攻略&#xff1a; 一、启动方式 通过快捷键&#xff1a; 在Windows/Linux上&#xff0c;按下 F12、Ctrl Shift I 或 C…

集成学习笔记

集成学习 简介 决策树 GBDT 拟合残差 一般 GBDT XGBOOST 弓 1 能表达样本落入的子节点&#xff0c;但是不能把表示结构 2 3.正则项 – 惩罚 防止过拟合&#xff0c;比如一个值总共有10颗树都是由同一颗树决定的&#xff0c;过拟合 5 找到一种方式不依赖于损失函数 …

Android开发之内访Sqlite数据库(六)

文章目录 1. Android开发之外访Sqlite数据库1.1 Sqlite数据库的优点1.2 Sqlite接口简介接口中的抽象方法接口中的实例方法接口的构造方法示例步骤例子 —— 实现增删改查 1. Android开发之外访Sqlite数据库 SQLite是一个软件库&#xff0c;实现了自给自足的、无服务器的、零配…

python的优势有哪些?

python的优点很多&#xff0c;下面简单地列举一些&#xff1a; 简单 Python的语法非常优雅&#xff0c;甚至没有像其他语言的大括号&#xff0c;分号等特殊符号&#xff0c;代表了一种极简主义的设计思想。阅读Python程序像是在读英语。 易学 Python入手非常快&#xff0c;学习…

K8s:无状态

无状态服务 无状态服务是指服务的实例之间没有持久化状态&#xff0c;每个实例都是相同的&#xff0c;可以互换使用。 调度器 ReplicationController 简称 RC是 Kubernetes 早期版本中用来确保 Pod 副本始终运行的 API 对象。它通过监控 Pod 副本的数量&#xff0c;确保任何…

vue 常用的 UI 框架及表格

vue 3 常用的 UI 框架及表格 常用 UI 框架 Element PlusAnt Design VueiViewVxe UIVuetifyBootstrap VueMuse UI 专业表格 SpreadJSAG GridVxe Table

Linux——内存管理代码分析

虚空间管理 页框和页的关系 页框 将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个页框&#xff0c;也叫页帧&#xff0c;即物理页面&#xff0c;是linux划分内存空间的结果。 每个页框都有一个页框号&#xff0c;即内存块号、物理块号。 页 将用户…

深度学习之指数移动平均模型(EMA)介绍

指数移动平均模型&#xff08;Exponential Moving Average Model&#xff0c;EMA&#xff09;是一种用于平滑时间序列数据的技术。它通过对数据进行加权平均来减少噪音和波动&#xff0c;从而提取出数据的趋势。 在深度学习中&#xff0c;EMA 常常用于模型的参数更新和优化过程…

完整指南:远程管理 Linux 服务器的 Xshell6 和 Xftp6 使用方法(Xshell无法启动:要继续使用此程序........,的解决方法)

&#x1f600;前言 在当今软件开发领域&#xff0c;远程管理 Linux 服务器已成为日常工作的重要组成部分。随着团队成员分布在不同的地理位置&#xff0c;远程登录工具的使用变得至关重要&#xff0c;它们为开发人员提供了访问和管理服务器的便捷方式。本文将介绍两款功能强大的…

python随机显示四级词汇 修改版直接显示释义

python随机显示四级词汇 修改版直接显示释义 添加暂停 和继续(按下中建滚轮触发) 按下右键 退出程序 解决在暂停后 ,重新调用update_word 会明显发现每隔5秒更新一次单词的速率已经改变 速率改变的问题可能是由于暂停期间没有清除之前的定时器所导致的。为了确保重新调用updat…

Linux高级进阶-ssh配置

Ubuntu-system 允许使用root远程登陆 apt install ssh -y在/etc/ssh/sshd_config 文件修改PermitRootLogin yes systemctl restart ssh远程连接软件用户名为root

Ubuntu系统中Apache Web服务器的配置与实战

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Educational Codeforces Round 166(Div.2) A~D

A.Verify Password&#xff08;字符串&#xff09; 题意&#xff1a; Monocarp正在开发他的新网站&#xff0c;目前面临的挑战是如何让用户选择强密码。 Monocarp认为&#xff0c;强密码应满足以下条件&#xff1a; 密码只能由小写拉丁字母和数字组成&#xff1b;字母后面不…

PasteCode系列系统说明

定义 PasteCode系列是指项目是基于PasteTemplate构建的五层以上项目&#xff0c;包括不仅限于 Domain EntityFrameworkCore Application.Contracts Application HttpApi.Host 熟悉ABP vNext就很好理解了&#xff0c;因为PasteTemplate就是基于ABP的框架精简而来&#xff01;在…

一些Mysql面试题

InnoDB是如何存储数据的&#xff1f; InnoDB 的数据是按「数据页」为单位来读写的&#xff0c;默认数据页大小为 16 KB。每个数据页之间通过双向链表的形式组织起来&#xff0c;物理上不连续&#xff0c;但是逻辑上连续。 数据页内包含用户记录&#xff0c;每个记录之间用单向…

【java 如何将字符串反转?】

文章目录 概要示例&#xff08;1&#xff09;使用StringBuilder的reverse方法&#xff08;2&#xff09;使用charAt和循环&#xff08;3&#xff09;使用双指针&#xff08;4&#xff09;使用递归 总结 概要 在Java中&#xff0c;有多种方法可以将字符串反转&#xff0c;我这里…

代码随想录训练营第二天 977有序数组的平方 209长度最小的子数组 59螺旋矩阵II

第一题&#xff1a; 题目链接&#xff1a;977. 有序数组的平方 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 先将数组求完平方和后进行排序&#xff0c;很简单&#xff0c;主要是排序算法的考察。 这里采用快排 快排的思路&#xff1a; 取这个数组的中间值…