CSS 关于样式穿透

CSS 关于样式穿透,第1张

前两天在项目中遇到一个问题,需要手动去修改引入的第三方组件的CSS样式,我第一想法就是直接在组件上新增一个自定义的class去覆盖原有的样式,结果当然是行不通的(不然我现在也不会在这里写这篇)。

于是我查了一下,是因为我在vue组件里面将设置成了局部样式,局部样式只在当前组件生效,对引入的其他组件是无法起作用的。然后我试了一下,把 scoped 去掉就行了。

或者在组件里面写多一份全局样式

但是如果不在style里面写 scoped ,直接写成全局样式,最后可能会面临多个组件之间样式污染的问题。如何使得局部样式可以覆盖到引入的第三方组件呢,我想到以前涉及过的一个名词 样式穿透 ,立刻实践了一下,果然就成了。

样式穿透 需要定义一个外层的style,通过 >>> 可以使得socped属性下的的样式穿透到全局, 外层 >>> 第三方组件 或者 外层 /deep/ 第三方组件 。 >>> 是 /deep/ 的别名,但是在sass之类的样式预处理器之中无法正确解析。

随着H5,CSS3的快速火起来,用户体验尤为重要,移动设备用户的庞大,不容小视,而恰恰,Bootstrap就是为移动设备而开发的框架。他虽然是以移动设备优先,倾向于Mobile,但不是移动设备框架。

它由规范的CSS,JavaScript插件构成,其最大的优势是响应式布局,CSS媒体查询(Media Query)的功劳,使得开发者可以方便的让网页无论在台式机,手机上都获得最佳的体验。

抽象出常用的css样式,高再可用性,高移植性

有固有的定义,详细的文档及开发特点

高兼容性,可以兼容流行的浏览器

以css为主,但不一定全部是css,可能有一些js(或者其他)脚本用于兼容浏览器

Bootstrap框架可以分为三类:

第一:预处理脚本:

Bootstrap的源码是基于最流行的CSS预处理脚本-Less和Sass开发的。你可以采用预编译的CSS文件快速开发,也可以从源码定制自己需要的样式。例如。如果你页面上有很多同样的效果。只需要写一个效果类。然后让用到的地方去继承他。就不需要再写了。

第二:一个框架,多种设备

你的网站和应用能在Bootstrap的帮助下通过同一个代码快速,有效设配手机,平板、PC设备,这都是CSS媒体查询的功劳。

第三:特效齐全

Bootstrap提供了全面、美观的文档、可以找到关于HTML元素,HTML和CSS组件、jQuery插件方面的所有详细文档。

Bootstrap组件: Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。比如:下拉菜单、按钮组、按钮下拉菜单、导航、导航条、路径导航、分页、排版、缩略图、警告对话框、进度条、媒体对象等。

bootstrap优点:

优点

1bootstap最近发布了bootstrap4,拥有了box-flex布局等更新,紧跟最新的web技术的发展

2比较成熟,在大量的项目中充分的使用和测试

3拥有完善的文档,使用起来更方便

4有大量的组件样式,接受定制

@(概述)[基本概念|百分比|rem|vw/vh|响应式设计]

移动端web页面的开发,由于手机 屏幕尺寸 分辨率 不同,或者需要考虑 横竖屏 问题,为了使得web页面在不同移动设备上具有相适应的展示效果,需要在开发过程中使用合理的适配方案来解决这个问题。

早期网页设计采用 静态布局 ,通过 <meta> 标签中的 applicable-device 应用设备标识识别移动设备,即 <meta name = 'applicable-device' content = 'mobile'> ,在 <meta> 标签中的 viewport 标签中设置 width ,通过 js 动态修改标签的 initial-scale 使得页面等比缩放,刚好占满整个屏幕。一些文章中有提到静态布局中页面各个元素采用 px 为单位,这种方案实现简单,不存在兼容性问题,但用户体验很不友好。

后面出现 流式布局 ,使用百分比 % 定义宽度,高度使用 px 固定,根据可视区域大小实时进行尺寸调整,通常使用 max-width/min-width 控制尺寸范围过大或者过小。这种方案实现比较简单,但在大屏手机或横竖屏切换场景下可能会导致页面元素被拉伸变形,字体大小无法随屏幕大小发生变化。

顺应不同页面字体大小展现问题,出现了 d性布局 。这种布局方案下,包裹文字的元素的尺寸采用 em/rem 为单位,页面主要划分区域的尺寸依据情况使用 px 、百分数或者 em/rem 。如一些高校的网站 jlu ,页面的主要划分区域使用 px 和百分比,包裹文字的元素和文字采用 em 。

上面的这几种方案下,页面元素的大小按照屏幕分辨率进行适配调整,但是整体布局不变,对于 响应式web设计 ,网页布局会随着访问它的视口及设备的不同呈现不同的样式,在实现上可能会以上多种方案的结合,同时搭配 媒体查询 技术使用,使得一个页面在多个终端 (PC, mobile, pad) 呈现满意效果,如 mashable 。

[TOC]

像素,是屏幕上显示数据的最基本的点,表示相对大小。不同分辨率下相同长度的 px 元素显示会不一样,是因为像素点的个数相同情况下,不同分辨率下每个像素点对应的像素宽度不同。比如同样是 14px 大小的字,在 1366×768 显示屏下会显示的小,在 1024×768 显示屏下会相对大。也称为 物理像素(设备像素 ),是分辨率的尺寸单位。

印刷行业常用单位,能够使用测量设备测得的长度,等于 1/72 英寸。

在不同屏幕上, css 像素呈现的物理尺寸一致,但 css 像素对应的物理像素具数不同。标准的显示密度下, 1 个 css 像素对应一个物理像素,缩放时, 1 个 css 像素对应的物理像素会减增。是一种 设备独立像素(device independent pixels: DIPs)

像素密度,每英寸所拥有的像素数。值越高,显示画面细节越丰富。计算公式为: ,其中 和 是分辨率的宽高, 是屏幕尺寸。

打印设备每英寸印刷出来的点有多少个,值越高,越细腻。

设备物理像素和设备独立像素比 ,即 是指在理想布局宽度,使用多少个物理像素来渲染一个css像素。js中通过 windowdevicePixelRatio 获取,css中通过 -webkit-device-pixel-ratio , -webkit-min-device-pixel-ratio , -webkit-max-device-pixel-ratio 进行媒体查询。

<meta> 标签中定义了一些元数据信息,通过设置 <meta name = "viewport"> ,提供有关 视口初始大小 的信息,供 移动设备 使用。属性值为

移动端涉及 布局视口 (Layout Viewport)、 视觉视口 (Visual ViewPort)和 理想视口 (Ideal ViewPort)。

与移动端web页面适配有关的手机屏幕特性包括

硬件所支持的,屏幕每行的像素 每列的像素点数,单位是 px 。

设备独立的,软件可以达到的,个人理解是使得软件/页面在不同屏幕上显示出来的效果一致。

像素分辨率 ÷ 逻辑分辨率等于 倍率 ,如 @3x 表示分辨率的 3 倍。一个已知物理像素大小的元素,如果在普通屏中其设备像素等于 css 像素,但在一些高清屏中,如 Retina 显示屏,一个css像素对应 2 或 3 个设备像素,这时显示出来的元素会变小。为了让元素如期待显示,需要传入 原始设计稿尺寸 × 倍率 的设计稿,根据 DPR 的定义,这样加载后能够达到同样的效果。

手机屏幕对角线长度换算成英寸的大小

贴上 源码 分析

视口 是浏览器中用于呈现网页的区域,移动端的视口通常指的是 布局视口

使用 css 预处理器把设计稿尺寸转换为 vw 单位,包括 文本 布局高宽 间距 等,使得这些元素能够随视口大小自适应调整。以 1080px 设计稿为基准,转化的计算表示为

响应式设计 使得一个网站同时适配 多种设备 多个屏幕 ,让网站的布局和功能随用户的使用环境(屏幕大小、输出方式、设备/浏览器能力而变化),使其视觉合理,交互方式符合习惯。如使得内容区块可伸缩与自由排布,边距适应页面尺寸,适应比例变化,能够自动隐藏/部分显示内容,能自动折叠导航和菜单。

以上就是关于CSS 关于样式穿透全部的内容,包括:CSS 关于样式穿透、为什么使用bootstrap、移动端Web页面适配方案(整理版)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9859765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存