Media query 详解

响应式布局基本实现Media Query(媒介查询) Media Query的使用方法、设备类型、设备特性、特殊情况、在bootstrap中的应用... 阅读详情

最近更新文章不及时,在此说声抱歉,关于 media query 在网络上实际已经有很多成型的文章,但是在编者查看之后,发现并没有特别基础的入门教程,所以今天上午特意去对知识进行了整理,于是就有了下面的这篇文章,希望在阅读过这篇文章之后,能够帮助到你,感谢.

������5月24是作者的生日呦,希望大家多多留言点赞!������

0.前言

很多时候,前期使用 HTML 和 CSS 设计的样式非常精美,但是经常会因为对方的设备,浏览器等的原因,分辨率达不到要求,最后导致用户看到的界面非常丑陋,很多内容位置发生改变.

为了解决这个问题,,从 CSS 2.1 开始就定义了各种媒体类型(如显示器,便携浏览器等),允许设计者针对不用的媒体设备进行不同的 CSS 样式设计.

1.语法

语法规则如下:

@media not|only 设备类型 [and 设备特性] *

在上面的语法中,[and 设备特性] 部分可以出现 0 ~ N 次,通过使用多个 [and 设备特性] 可以对多个设备特性进行匹配.

media query 语法格式中支持设备如下:

--
all适用于所有的设备
aural适用于语音和音频合成器
braille适用于触觉反馈设备
embossed适用于凸点文字(盲文)印刷设备
handheld适用于小型或者手提设备
print适用于打印机
projection适用于投影图像,如幻灯片
sceen适用于计算机显示器(最常用的一个)
tty适用于使用固定间距字符格的设备,如电传打字机和终端.
tv适用于电视类设备

media query 语法格式中设备特性如下:

特性合理的特性值是否支持 max/min说明
width带单位的长度值,如100px是匹配浏览器宽度
height带单位的长度值,如100px是匹配浏览器高度
aspect-ratio比例值,如 16/9是匹配浏览器的宽度值和高度值的比例
device-width带单位的长度值,如100px是匹配设备分辨率的宽度值
device-height带单位的长度值,如100px是匹配设备分辨率的高度值
device-aspect-ratio比例值,如 16/9是匹配设备分辨率的宽度值与高度值的比例
color整数值是匹配设备使用多少位的色深,比如真彩色是32,如果不是彩色设备则为 0
color-index整数值是匹配色彩表中的颜色数
monochrome整数值是匹配单色帧缓冲器中每像素的位(bit)数,如果不是单色设备,这个数值为 0
resolution分辨率,如300dpi是匹配设备的物理分辨率
scan只能是 progressive 或者 interlace否匹配设备的扫描方式,其中 progressive 代表逐行扫描, interlace 代表隔行扫描
grid只能是 0 或 1否匹配设备是否基于栅格,1代表基于栅格,0代表其他类型

我们发现是不是很牛 X ,几乎设备所有物理特性我们都可以获取到,这样我们是不是也可以根据我们获取到的特性的内容,我们可以去针对不同的内容去进行设置了?那我们现在就根据上面的特性来去做几个简单的例子.

2.示例

首先我们先来看一个基础案例,就是我们通过我们改变浏览器的大小,来让我们浏览器中的文字也随之变化,给用户一种,我们的界面内容是可以随着浏览器的改变而改变的感觉.

2.1 案例一

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            html,body {
                height:100%;
            }
            html{font-size:10px}
            h2 {
                font-size:1.9rem;
            }
            /*媒体查询*/
            @media screen and (min-width:321px) and (max-width:375px){
            html{font-size:11px}}
            @media screen and (min-width:376px) and (max-width:414px){
            html{font-size:12px}}
            @media screen and (min-width:415px) and (max-width:639px){
            html{font-size:15px}}
            @media screen and (min-width:640px) and (max-width:719px){
            html{font-size:20px}}
            @media screen and (min-width:720px) and (max-width:749px){
            html{font-size:22.5px}}
            @media screen and (min-width:750px) and (max-width:799px){
            html{font-size:23.5px}}
            @media screen and (min-width:800px){html{font-size:25px}}
        </style>
    </head>
    <body>
        <div>
            <h2>我是李先生</h2>
            <span>李鹏</span>
            <span>2016年05月24日</span>
        </div>
    </body>
    </html>

大家可以看到,我在代码中首先获取的 设备类型 是我们的屏幕.

之后我们通过 and 设备特性 对不同情况下的文字大小进行了修改,如下图.

@media screen and (min-width:321px) and (max-width:375px){
html{font-size:11px}}

test_3.gif


2.2 案例二

让我们的网页中的内容结构随着我们的界面大小而不断改变,具体样例如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            /*设置默认的 CSS 样式*/
            .container{
                text-align: center;
                margin: 10px auto;
                width: 750px;
            }
            .container>div{
                border: 1px solid rgba(0,0,0,0.3);
                text-align: left;
                /*设置 HTML 组件的 width 属性包括边框*/
                box-sizing: border-box;
                background-color: #96FF6B;
                padding: 5px;
            }
            div .left{
                width: 300px;
                height: 230px;
                float: left;
            }
            div .main{
                width: 450px;
                height: 230px;
                float: left;
                /*这里不采用 clearfix 的用法了,直接 clear */
                clear:right;
            }
            div .right{
                width: 750px;
                float: left;
            }

            @media screen and (min-width: 1000px){
                .container{
                text-align: center;
                margin: 10px auto;
                width: 960px;
                }
                .container>div{
                    border: 1px solid rgba(0,0,0,0.3);
                    /*设置 HTML 组件的 width 属性包括边框*/
                    box-sizing: border-box;
                    background-color: #96FF6B;
                    padding: 5px;
                }
                div .left{
                    width: 240px;
                    height: 240px;
                    float: left;
                }
                div .main{
                    width: 460px;
                    height: 240px;
                    float: left;
                }
                div .right{
                    width: 260px;
                    height: 240px;
                    float: left;
                }
            }
            @media screen and (min-width: 180px) and (max-width: 500px){
                .container{
                text-align: center;
                margin: 10px auto;
                width: 450px;
                }
                .container>div{
                    border: 1px solid rgba(0,0,0,0.3);
                    /*设置 HTML 组件的 width 属性包括边框*/
                    box-sizing: border-box;
                    background-color: #96FF6B;
                    padding: 5px;
                }
                div .left{
                    width: 450px;
                    height: 240px;
                    float: left;
                }
                div .main{
                    width: 450px;
                    height: 240px;
                    float: left;
                }
                div .right{
                    width: 450px;
                    height: 240px;
                    float: left;
                }
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="left">
                <h2>我是你们的李先生呀</h2>
                <ul>
                    <li>MR_LP</li>
                    <li>MR_LP</li>
                    <li>MR_LP</li>
                    <li>MR_LP</li>
                </ul>
            </div>

            <div class="main">
                <h2>我是你们的李先生呀</h2>
                <p>MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP MR_LP</p>
            </div>

            <div class="right">
                <h2>我是你们的李先生呀</h2>
                <ul>
                    <li>MR_LP</li>
                    <li>MR_LP</li>
                    <li>MR_LP</li>
                    <li>MR_LP</li>
                </ul>
            </div>
        </div>
    </body>
    </html>

具体效果展示如下:

test_2.gif

二维码.jpg

分区补光与ISP图像调节技术 在安防监控场景中,逆光、强光、明暗不均(如门口 / 窗边的 “阴阳脸” 画面)是导致图像细节丢失的核心问题。分区补光技术通过对画面不同亮度区域精准补光,解决 “局部过曝 / 欠曝” 难题;ISP(图像信号处理器)图像调节技术则通过算法优化,提升画面色彩、对比度与细节。二者协同可实现 “硬件补光 + 算法优化” 的双重增强,是低功耗摄像机实现高清画质的关键技术组合。分区补光与 ISP 图像调节技术:原理、协同方案及安防监控应用案例。一、核心技术原理解析。 阅读详情

相关推荐

Verilog中用于时序验证的系统任务[setup][hold][skew][width][recovery][removal]【STA静态时序分析】

下列时序检查语句错误的是() A. $setup(posedge clk, data, tSU) B. $hold(posedge clk, data, tHLD) C. $setuphold(posedge clk, data, tSU, tHLD) 答案:A 解析: 在时序检查函数中,$setup 函数比较特殊,格式是: $setup(data_event, reference_event, limit); 其他常见的检查是: $......(reference_...

DengFengLai123的博客 1万+

CSS | 响应式布局之媒体查询(media-query)详解

media query功能:这种机制允许设置在css样式中添加media query表达式,这种表达式不仅可以对媒体类型进行匹配,也可以对媒体分辨率、色深等各种细节进行匹配,因此可以针对不同类型,不同参数细节的媒体设计提供精确控制。语法:@media 设备名 only(选取条件) not (选取条件) and (设备选取条件) , 设备二{sRules}

青春木鱼的博客 1万+

Tiny windows 11 安装与部署

需要注意,安装完后键入 windows 键,输入 update 先更新系统。点击开始,等待完成即可,用户可自定义。

m0_73351035的博客 9046

这是媒体查询

媒体查询什么是媒体查询背景介绍媒体查询的使用组成mediatype 查询类型关键字媒体特性媒体特性(拓展属性——了解)媒体查询语法规范 什么是媒体查询 背景 近几年整个社会发生了翻天覆地的变化,各种智能手机,pad,之类的移动端设备随处可见。那么,程序员界就刮起了一阵风暴,大家在思考 “ 如何让我们的网站在各种移动端设备上都能布局合理呢? ”为每一个设备写一套代码自然是非常麻烦的。那么,聪明的程序员们想到了一个办法,“ 我只要一套代码,就能让我的网站在不同大小的设备上正确显示 ”。于是,响应式设计模型诞生啦

csdn_jwdlh的博客 733

UFS电源管理实战:如何优化手机存储的功耗与性能(附实测数据)

本文深入探讨了UFS电源管理的实战优化策略,旨在平衡手机存储的功耗与性能。通过解析UFS核心电压域与工作状态,重点介绍了通过动态调整bActiveICCLevel(活动电流等级)来实现精细控制,并结合实测数据与场景驱动的智能策略,为Android系统与硬件工程师提供了降低功耗、提升流畅度的有效方法。

weixin_29214559的博客 504

IoTDB时序数据库在Windows下的保姆级安装教程(含环境变量配置避坑指南)

本文提供Apache IoTDB时序数据库在Windows系统下的详细安装与配置指南。教程涵盖从Java环境检查、软件下载解压,到环境变量配置的深度避坑,并详解了服务的启动、停止、连接测试及基础数据操作,帮助物联网开发者在Windows平台快速搭建稳定的时序数据库环境。

weixin_29275257的博客 261

如何使用媒体查询(media query)来适配不同设备上的样式?

如何使用媒体查询(media query)来适配不同设备上的样式?

商务合作欢迎私信我 5717

Amazon SES 移出沙盒完整指南 & 高通过率模板

AWS SES沙盒模式转正式模式申请指南 申请正式模式需通过AWS审核,常见被拒原因包括邮件用途不清晰、缺少退订机制或发送量不合理。人工申诉需登录AWS Support Center提交服务限额提升请求,填写详细的公司信息、邮件用途及合规措施。 高通过率申诉模板需包含: 公司信息:名称、网址及与AWS的合作情况。 邮件规范:明确类型(交易/营销)、退订链接及退信处理机制。 发送计划:合理预估发送量,确保合规。 关键点:真实信息、用途清晰、退订机制完善、发送量合理。首次被拒可修改后重新提交。

xianyinsuifeng的博客 328

媒体查询(media query)总结

媒体查询是css3新语法,可以针对不同的媒体类型定义不同的样式,可简单理解为根据页面不同的宽度,来使用不同的css样式。

qq_51099065的博客 2403

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

mojoPortal 路径穿越漏洞复现(CVE-2025-28367)(附脚本)

 在 mojoPortal CMS 版本 <=2.9.0.1 中发现了一个导致 ViewState 反序列化的目录遍历漏洞。通过利用此问题,未经身份验证的攻击者可以泄露 Web 根目录中的敏感文件,包括应用程序的文件。此配置文件包含用于验证和解密 ViewState 数据的文件。知道此密钥后,网络攻击者可以构建恶意 ViewState 有效负载,从而导致在底层服务器上执行远程代码。(CVE-2025-28367)

iSee857的博客 500

媒体查询语法

媒体查询语法简介 媒体查询(media query)是css3的新语法 使用@media查询可以针对不同媒体类型定义不同的样式 @media 可以针对不同屏幕的尺寸设置不同的样式 当重置浏览器大小的过程中 页面也会根据浏览器的宽度和高度重新渲染页面 语法 @media mediatype and |not |only(media feature){ css-code } 用@ 开头 @media 注意@符号 mediatype 媒体类型 关键字 and not only media featu

MDR_0820的博客 1315

使用MATLAB进行灰色预测 GM(1,1)

使用MATLAB进行灰色预测 GM(1,1)

Hou_____的博客 997

ECharts -Media Query

目录ECharts组件的定位和布局定位方式横向(horizontal)和纵向(vertical)Media Queryquery:option: ECharts组件的定位和布局 定位方式 大部分『组件』和『系列』会遵循两种定位方式: left/right/top/bottom/width/height 定位方式: 这六个量中,每个量都可以是『绝对值』或者『百分比』或者『位置描述』。 绝对值 单位是浏览器像素(px),用 number 形式书写(不写单位)。例如 {left: 23, height: 40

别下完这场雪 1681

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

media query和响应式布局

media query允许设计者在CSS样式中添加media query表达式,他们可以对媒体类型进行匹配 也可以对媒体分辨率 色深等各种细节进行匹配 所以可以针对不同类型,不同参数细节的媒体设备提供精确控制 语法格式 @media not|only 设备类型 [and 设备特性]* 在上面语法格式中,[ and 设备特性 ] 部分可以出现0~N次],通过使用多个[ and 设备特性 ]可以对多...

L1194774003的博客 316

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

media type与media query

http://www.qianduan.net/media-type-and-media-query.html http://broadcast.oreilly.com/2010/04/using-css-media-queries-ipad.html media type(媒体类型)是css 2中的一个非常有用的属性,通过media type我们可以对不同的设备指定特定的样式

东名夜雨 的专栏 2742

CSS link、@import、media type、media query

[b]CSS link、@import共同点:[/b]都是为了加载CSS文件。 [b]CSS link、@import不同点:[/b] [list] [*]Link属于XHTML标签,而@import完全是CSS提供的一种方式。link除了可以加载CSS外,还可以做很多其它的事情,比如[b]定义RSS,定义rel连接属性[/b]等,@import就只能加载CSS了。 [*]@impor...

如果你真的想做一件事,你一定会找到方法; 如果你不想做一件事,你一定会找到借口。 292

PostCSS Extract Media Query 教程

PostCSS Extract Media Query 教程 1、项目介绍 postcss-extract-media-query 是一个 PostCSS 插件,用于从 CSS 文件中提取媒体查询(@media queries)并将它们移动到一个单独的 CSS 文件中。这个插件可以帮助开发者更好地管理和优化 CSS 文件,特别是在处理大型项目时。 2、项目快速启动 安装 首先,你需要安装 post...

gitblog_00643的博客 933

media query相关表格

media query表: media query兼容性:

C860_zy的专栏 891

ECharts学习五 --- 移动端自适应 Media Query

&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;ECharts&lt;/title&gt; &lt;!-- 引入 echarts.js 采用的是cdn 引入,需保证外网连接正常 --&gt; &lt;script

树洞树洞-单纯记录 2743

postcss-combine-media-query 使用教程

postcss-combine-media-query 使用教程 1、项目介绍 postcss-combine-media-query 是一个开源的 PostCSS 插件,旨在帮助开发者将 CSS 文件中的多个媒体查询合并为一个,从而减少 CSS 文件的大小并提高加载性能。该插件特别适用于大型项目,其中包含大量的媒体查询规则。 2、项目快速启动 安装 首先,确保你已经安装了 Node.js 和 n...

gitblog_00450的博客 521

PostCSS Combine Media Query 项目教程

PostCSS Combine Media Query 项目教程 1. 项目目录结构及介绍 postcss-combine-media-query/ ├── examples/ │ └── gulp/ │ └── test/ ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── index.js ├── packa...

gitblog_00014的博客 458

Media Query Splitting Plugin 使用教程

Media Query Splitting Plugin 使用教程 项目介绍 Media Query Splitting Plugin 是一个用于 Webpack 的插件,旨在帮助开发者更高效地管理和优化 CSS 文件中的媒体查询。通过该插件,开发者可以将不同媒体查询的 CSS 代码分离成独立的文件,从而实现按需加载,提升网页性能。 项目快速启动 安装 首先,你需要通过 npm 安装该插件: np...

gitblog_00020的博客 300

stylelint 的 media-query-no-invalid 规则:按 Media Queries Level 5 语法校验媒体查询

`media-query-no-invalid` 是 stylelint 内置的一条核心校验规则,用于**禁止语法无效的 `@media` 媒体查询**,其判定依据是 W3C [Media Queries Level 5](https://link.gitcode.com/i/61748217d246dfefea5b8f2cc9717e53) 为骨架,结合仓库中规则实现源码与完整测试用例,讲清该规

gitblog_00042的博客 962

Sass Media Query Combiner

Sass Media Query Combiner Sass Media Query Combiner 是一个用于合并 Sass 中的媒体查询的工具。它可以让你更有效地管理和优化你的 CSS 代码。 什么是 Sass Media Query Combiner? Sass Media Query Combiner 是一个基于 Node.js 的命令行工具。它可以帮助你将多个媒体查询合并成一个,从而减...

gitblog_00085的博客 429

优化你的CSS:postcss-combine-media-query插件推荐

优化你的CSS:postcss-combine-media-query插件推荐 项目介绍 在现代前端开发中,CSS的模块化管理变得越来越重要。然而,随着项目规模的扩大,CSS文件中的媒体查询(Media Queries)可能会变得冗长且重复,尤其是在组件化开发中,每个组件内部的媒体查询规则可能会多次出现。这不仅增加了CSS文件的大小,还可能导致维护困难。 为了解决这一问题,postcss-comb...

gitblog_01091的博客 467
上一篇: H5学习_番外篇_PHP数据库操作
下一篇: 编写高质量的 JavaScript 代码(一)
MR_LP
博客等级 码龄11年 236粉丝 89原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值