怎样实现javascript中layer位置的相对定位

怎样实现javascript中layer位置的相对定位,第1张

layer的函数调用的时候,可以通过offset - 坐标来设置定位

类型:String/Array,默认:'auto'

默认垂直水平居中。但当你只想定义top时,你可以offset: '100px'。当您top、left都要定义时,你可以offset: ['100px', '200px']。除此之外,你还可以定义offset: 'rb',表示右下角。其它的特殊坐标,你可以自己计算赋值。

代码如下:

function a(callback){

alert('a');

callbackcall(this);//或者是 callback(), callbackapply(this),看个人喜好

}

function b(){

alert('b');

}

//调用

a(b);

这样的结果是先d出 'a',再d出‘b'。这样估计会有人问了“写这样的代码有什么意思呢?好像没太大的作用呢!”

是的,其实我也觉得这样写没啥意思,“如果调用一个函数就直接在函数里面调用它不就行了”。我这只是给大家写个小例子,做初步的理解。真正写代码的过程中很少用这样无参数的,因为在大部分场景中,我们要传递参数。来个带参数的:

复制代码 代码如下:

function c(callback){

alert('c');

callbackcall(this,'d');

}

//调用

c(function(e){

alert(e);

});

这个调用看起来是不是似曾相识,这里e参数被赋值为'd',我们只是简单的赋值为字符窜,其实也可以赋值为对象。Jquery里面是不是也有个e参数,下面我们就来讲讲

Jquery里面的e参数是如何被回调赋值的。

Jquery框架我想大家不陌生了,出来了好久,开发的时候都在用,比较简单,api网上搜起来很方便,上手快。在Jquery框架下,我们有时候要获取事件中的一些参数,比如我要获取当前点击的坐标,点击的元素对象。这个需求在Jquery里面好办 :

复制代码 代码如下:

$("#id")bind('click',function(e){

//epageX ,epageY ,etarget各种数据

});

用起来倒是挺方便,其实这个e参数的赋值也是通过回调函数来实现的,这个参数是用回调参数给它赋予了一个对象值,仔细研究过JJquery源码的朋友应该发现了这一点。

还有Ajax里面 $get('',{},function(data){}) data这个参数也是同样的原理。

我们来看看Jquery事件对象里面是怎么应用回调函数的。

为了方便,我简单的写了一下$相关的一些实现,之前写过“小谈Jquery”里面有比较接近框架实现的方法,我下面只是写一个简易的选择器。

复制代码 代码如下:

<div id="container" style="width:200px;height:200px;background-Color:green;">

< /div>

< script>

var _$=function (id)

{

thiselement= documentgetElementById(id);

}

_$prototype={

bind:function(evt,callback)

{

var that=this;

if(documentaddEventListener)

{

thiselementaddEventListener(evt, function(e){

callbackcall(this,thatstandadize(e));

} ,false);

}

else if(documentattachEvent)

{

thiselementattachEvent('on'+evt,function(e){

callbackcall(this,thatstandadize(e));

});

}

else

thiselement['on'+evt]=function(e){

callbackcall(this,thatstandadize(e));

};

},

standadize:function(e){

var evt=e||windowevent;

var pageX,pageY,layerX,layerY;

//pageX 横坐标 pageY纵坐标 layerX点击处位于元素的横坐标 layerY点击处位于元素的纵坐标

if(evtpageX)

{

pageX=evtpageX;

pageY=evtpageY;

}

else

{

pageX=documentbodyscrollLeft+evtclientX-documentbodyclientLeft;

pageY=documentbodyscrollTop+evtclientY-documentbodyclientLTop;

}

if(evtlayerX)

{

layerX=evtlayerX;

layerY=evtlayerY;

}

else

{

layerX=evtoffsetX;

layerXY=evtoffsetY;

}

return {

pageX:pageX,

pageY:pageY,

layerX:layerX,

layerY:layerY

}

}

}

window$=function(id)

{

return new _$(id);

}

$('container')bind('click',function(e){

alert(epageX);

});

$('container1')bind('click',function(e){

alert(epageX);

});

< /script>

这段代码我们主要看standadize函数的实现,兼容性的代码,就不多说了,返回的是一个对象

复制代码 代码如下:

return {

pageX:pageX,

pageY:pageY,

layerX:layerX,

layerY:layerY

}

然后再看bind函数里面的代码 callbackcall(this,thatstandadize(e)),这段代码其实就是给e参数赋值了,是用callback回调实现的。

callback 函数被调用的时候传入的是匿名函数

复制代码 代码如下:

function(e){

}

而callbackcall(this,thatstandadize(e))相当于是执行了这么一段代码

复制代码 代码如下:

(function(e){

})(standadize(e))

这也是Jquery用回调函数比较经典的地方,e参数就是这么被赋值的,说了这些你们也大概有个了解了,以及怎么使用了。

回调在各种框架中应用的比较多,有时候自己写一些东西的时候也可以根据实际情况用用看。

有以下两种传值方式:

第一种:页面元素自带的值,或者是moudle分配值,传递到html中,以下是moudle分配置值的一种方式:

第二种:通过js获取相关的值,写入内容content中,以下是案例:

<input type="hidden" id="idl" value="内容部分" />

<script> 

var my_content = $('#idl')val(); 

layeropen({       

type: 2,//类型

maxmin: true,

title: '标题',//窗口名字

content: my_content

});

</script>

扩展资料

在编辑html文件和使用有关标记符时有一些约定或默认的要求。

HTML源程序为文本文件,其列宽可不受限制,即多个标记可写成一行,甚至整个文件可写成一行;若写成多行,浏览器一般忽略文件中的回车符(标记指定除外);对文件中的空格通常也不按源程序中的效果显示。

-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制。CSS单元位置和层次-div标签 div接口=数字图像数据接口我们都知道,在网页上利用HTML定位文字和图像是一件“令人心痛”的事情。我们必须使用表格标签和隐式GIF图像,即使这样也不能保证定位的精确,因为浏览器和 *** 作平台的不同会使显示的结果发生变化。而CSS能使你看到希望的曙光。利用今天我们即将学到的CSS属性,你可以精确地设定要素的位置,还能将定位的要素叠放在彼此之上,还有还有你自己慢慢看吧!Cascading Style Sheets(CSS)是 DHTML 的基础。CSS 用来设定你网页上的元素是如何展示的。Cascading Style Sheets Positioning(CSS-P)是 CSS 的一个扩展,它可用来控制任何东西在网页上或是说在窗口中的位置。请你记住这两个名词:CSS 和 CSS-P。下面四个英文网址提供了详细的关于 CSS 和 CSS-P 的文件和解释。 ● 1.使用 DIV 标签 (div)当我们使用 CSS-P 的时候, 我们主要把它用在 DIV(division)tag 上。当你把文字,图像,或其他的放在 DIV 中,它可称作为“DIV block”,或“DIV element”或“CSS-layer”,或干脆叫“layer”。而中文我们把它称作“层次”。所以当你以后看到这些名词的时候,你就知道它们是指一段在 DIV 中的 HTML。使用 DIV 的方法跟使用其他 tag 的方法一样:This is a DIV tag 如果单独使用 DIV 而不加任何 CSS-P, 那么它在网页中的效果和使用是一样的。但当我们把 CSS-P 用到 DIV 中去以后,我么就可以严格设定它的位置。首先我们需要给这个可以被 CSS-P 控制的 DIV 一个 ID 或说是它的名字。比如说我们给下面这个 DIV 的名字是 truck。给名字的目的是我们以后可用 JavaScript 来控制它, 比如说移动它或改变它的一些性质等等。This is a truck给层次取什么名字是随意的,名字可以是任何英文字母和数字,但第一个必须是字母。有两种把 CSS-P 应用到 DIV 的方法。Inline CSS:Inline 是最常用的方法。This is a truck External STYLE tag:使用 External 方法的结果是一样的。我们会在以后的课程里再详细解释这种方法。现在我们主要讨论Inline 方法。请注意在 External 方法里,在 STYLE 里的 ID 和 DIV 里的关系。<STYLE TYPE="text/css"><!-- #truck --></STYLE>This is a truck Cross-Browser CSS 性质:我们这个课程的主要目的是让你写出的网页在 NS4 和 IE4 上都能工作, 所以我们主要讨论那些对俩者都通用的性质。下面这些性质符合由 W3C 给出的标准。 position 决定 DIV tag 是如何放置的。“relative”意思是DIV的位置是相对于其他 tag 的,而“absolute”是说 DIV tag 的位置是相对于它所在的窗口。 left 相对于窗口左边的位置 top 相对于窗口上边的位置 width DIV tag 的宽度。所有在 DIV 里的文字或html都在里面。 height DIV tag 的高度。这个性质很少用除非你想 Clip 层次。 clip 给出 layer 的 clipping(可看的见的)部分。Clip 可使得 DIV 显示为一个可以定义的很准确的方块。你可以用以下的四个值来给出这个方块的在 DIV 位置和大小。clip:rect(top,right,bottom,left); visibility 隐蔽或展现DIV 根据它的值“visible”,“hidden”,“inherit”。 z-indexDIV tag 的立体位置。值越大 DIV 的位置越高。 background-color DIV 背景的颜色。 layer-background-color Netscape 的 DIV 背景颜色。 background-image DIV 的背景图像。 layer-background-image Netscape 的 DIV 的背景图像。 ● 2.绝对定位和相对定位 (position)绝对定位:定位属性将是网虫们打开幸福之门的钥匙:H4 这项CSS规则让浏览器将<H4>的起始位置精确地定在距离浏览器左边100象素,距离其顶部43象素的位置。注意这里唯一设置了的是左边和顶部,也就说,文字将从左到右,从上到下载入浏览窗口。左边和顶部属性很直观,左边(left)设定要素距浏览器窗口左边的距离,顶部(top)设定距离浏览器窗口顶部的距离。设定这些距离时,你可以使用所学过的各种度单位或比例值。使用比例值时,比例值的是相对于母体要素的尺寸。你可以定位什么呢?任何东西!段落、单词、GIF和JPEG图像、QUICKTIME**等等。相对定位:绝对定位使你能精确地定位要素在页面的独立位置,而不考虑页面其它要素的定位设置。相对定位指你所定位的要素的位置相对于在文件中所分配的位置。例:I 相对定位的关键在于定位了的要素的位置是相对于它通常应在的位置进行定位。相对定位单元出现在普通的静态定位单元的行间,定位时没有把自己和静态定位单元完全分开。如果你停止使用相对定位,则文字的显示位置将恢复正常。使用相对定位时要小心,否则容易将页面弄得非常乱。除了相对定位和绝对定位,你还可以使用static(静止)参数值。Static 是 position 特性的缺省值。它的使用方法同普通HTML中的定位方法,不能附加特殊的定位设置。也就是说,除了边距特性,或通过使用 float 特性来浮动单元可影响单元的定位外,其它均不可以。● 3.定位单元的控制 (width、height、visiblility)除了控制定位单元的左上角位置,你还可以控制单元的宽度和高度,及单元在页面的可视性。宽度:定位了的要素在页面上显示时仍然会从左到右一直显示。利用宽度属性就可以设定字符向右流动的限制,即设定要素的宽度。DIV 浏览器接到这项规则时,它将文字按照规则规定的效果显示,还将段落的最大水平尺寸限制在150象素。宽度属性只适用于绝对定位的要素。你可以使用我们学过的任何一种长度单位,或使用比例值设定宽度,比例值指相对于母体要素的比例。IE 4中,这项属性还可用于图像。你可以通过宽度设置人为地拉宽或压缩图像。高度:理论上讲,高度应该和宽度的设置类似,只不过是在垂直方向上:DIV 这里我用了“理论上讲”,因为有些浏览器不支持高度属性。可视性:利用CSS,你可以隐藏要素,使其在页面上看不见。这条属性对于定位了的和未定位的要素都适用。H4 选项: visible 使要素可以被看见 hidden 使要素被隐藏 inherit 指它将继承母体要素的可视性设置。 值 inherit 为缺省值。这使单元继承父单元的可见性。所以,如果某一段是隐藏的,则它包含的任何行间单元也都被隐藏。这一继承性可被明确指定的可见性取代。例如,段内的 EM 单元被指定为可见,这时如果该段被隐藏,则段内的所有其它内容都将消失,而唯有 EM 单元中的文本是可见的。当一个要素被隐藏后,它仍然要占据浏览器窗口中的原有空间。所以,如果你将文字包围在一幅被隐藏的图像周围,那么,其显示效果将是文字包围着一块空白区域。此新闻这条属性在编写语言和使用动态HTML时很有用,比如你可以使某段落或图像只在鼠标滑过时才显示。● 4.单元层次 (z-index)特性 z-index用于堆叠屏幕上的单元。缺省情况下,单元堆叠的顺序为它们出现在HTML标记的顺序——也就是说,后出现单元堆叠在早出现单元的上面。Z-index 特性实际上定义同属(sibling)单元的堆叠顺序以及单元相对父单元的堆叠。按照规范草案,具有正 z-index 值的单元群都堆叠在父单元之上,它们自己的堆叠顺序则按其取值的大小来决定(值大的单元在上层)。同样,具有负 z-index 值的单元群都堆叠在父单元之下,它们自己的堆叠顺序也按取值的大小来定(值大的单元在上层,例如值为 -1 的单元在值为 -2 的单元的上面)。该参数值使用纯整数。z-index用于绝对定位或相对定位了的要素。你也可以给图像设定z-index。(对于Communicator,最好将 <IMG>标签包在[font]或 标签内,然后将z-index应用到[font]或 。)● 5.剪辑绝对定位单元 (clip)绝对定位单元可以被剪辑——也即剪辑显示给用户的区域,只显示单元的一部分而把其余部分作透明处理。对于传统的基于文本和图像的网络页面,这并不是一个很有用的特征。但若要求多媒体页面,这是很有用的。如 Netscape Communivator 4 和 Internet Explorer 4都支持多媒体页面,它们通过文档的脚本接口动态地调整单元周围的剪辑区,从而实线文本“划入”和图像渐显等显示特征。在CSS中,剪辑通过 clip 特性来控制,这一特性只能用于绝对定位单元,其缺省值为 auto,按单元的外边缘来剪辑单元(实际上等于没有剪辑)。另外,可通过如下表达式设置剪辑框:clip : rect(top,rightbottom,left) ;其中 top、right、bottom 和 left 分别是矩形剪辑框的上边、右边、下边和左边相对于被剪辑单元左上角的位置。Top、right、bottom 和 left 的值可以为任意绝对或相对长度值(但不能为百分比值),或者是关键字 auto。取值为 auto 意味着剪辑区域的各边放好以后,被剪辑单元中的任何内容都不会超出这个区域。● 6.控制单元溢出 (overflow)固定绝对或相对定位单元的 width 和 height,很可能会因为指定的区域不能满足单元实际内容的需要,而造成单元内容溢出。这时可使用 overflow 来指定浏览器如何处理溢出:值 none(缺省值)允许浏览器显示溢出的内容,因此单元可溢出指定的区域。而值 clip 要求浏览器在单元底部和右边剪辑单元内容,这样,超出指定区域的单元内容将不显示。值 scroll 也同样要求浏览器在单元底部和右边剪辑单元内容(同 clip),不过,浏览器应该(如果可能的话)为单元提供滚动条以使用户能通过滚动来浏览被剪辑的内容。新译通(北京翻译公司、上海翻译公司、广州、深圳)专业英语 - [ Translate this page ]专业翻译公司提供翻译服务,为法律、科技、工业、商务、机械等领域提供专业的翻译服务,尤其是擅长工程标书这类对时间要求非常及时的项目。提供各语种多行业的笔译口译 - 17k - Cached - Similar pages ff c语言中的div的用法:函数名: div功 能: 将两个整数相除, 返回商和余数用 法: div_t (int number, int denom);程序例:# include#include div_t x; int main(void){x = div(10,3);printf("10 div 3 = %d remainder %d\n", xquot, xrem); return 0;}===========================================================================div属性 div属性color : #999999 文字颜色 font-family: 宋体文字字型 font-size : 10pt 文字大小 font-style:itelic 文字斜体育font-variant:small-caps 小字体letter-spacing: 1pt 文字间距line-height: 200% 设定行高font-weight:bold 文字粗体vertical-align:sub 下标字vertical-align:super 上标字text-decoration:line-through 加h除线text-decoration:overline 加顶线text-decoration:underline 加底线text-decoration:none h除连接底线text-transform: capitalize 首字大写text-transform: uppercase英文大写text-transform: lowercase英文写text-align:right 文字右对齐text-align:left 文字左对齐text-align:center 文字置中对齐 这些是一些简单的文字效果,可以应用到css的页面中。 背景background-color:black 背景颜色 background-image : url(image/bggif) 背景background-attachment : fixed 固定背景background-repeat : repeat 重复排列-网页预设background-repeat : no-repeat 不重复排列background-repeat : repeat-x 在x轴重复排列background-repeat : repeat-y 在y轴重复排列background-position : 90% 90% 背景x与y轴的位置 链接A 所有超连接A:link 超连接文字格式 A:visited 浏览过的连接文字格式 A:active 按下连接的格式 A:hover 鼠标移至连接边框border-top : 1px solid black 上框 border-bottom: 1px solid #6699cc 下框 border-left : 1px solid #6699cc 左框 border-right : 1px solid #6699cc 右框border: 1px solid #6699cc 四边框虚线<TEXTAREA STYLE="border:1px dashed pink">实线<TEXTAREA STYLE="border:1px solid pink">===========================================================================DIV 网页布局规范的对CSS的类及id命名Web开发者(也就是您)可以通过创建CSS类及id名称并使用这些名称来对div以及其他的页面元素、标签进行标识。对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智。然而随心所欲的为这些类以及id命名则并不是个好的习惯。在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric Meyer所撰写的关于CSS类以及id命名规范的系列文章之后,我开始思考在自己的Web站点设计过程中对类以及ids的命名方式。直观命名当在设计Web页面以及需要对一个div进行标识的时候,最自然的想法就是使用可以描述元素所在页面位置的词汇来对其命名。这种方法使得类以及id的名称如下面所示:top-panelhorizontal-navleft-sidecenter-columnright-col这些是CSS以及XHTML类和id的有效命名方式。这些词汇简单并且能够使人顾名思义,因此满足了标识页面元素以及相应的CSS样式的需要。但问题是这样的名称同页面内容的特定表达方式相关联。这些命名参考了某种特定页面布局中的页面元素位置,因此在这样的布局之外使用就会显得不合适甚至造成理解混乱。同时,这些命名没有涉及文档内容的结构。因此,下面给出了对CSS类以及ID命名更好的方法。结构化命名 结构化的标记意味着表达方式/位置信息同内容的完全分离——这其中包括出现在标记(markup)中的类和id名称。有标记的相关信息都是用来描述文档的结构而不是外观。这样的特点使得我们可以通过简单的改变CSS的方式来对不同外观格式下的内容(content)以及标记(markup)进行重用。当你理解这种方式时,很容易就可以发现采用页面位置来为类以及id命名的方式在处理如音频(audio)等外观格式上显得非常不合适。因此,应当根据在文档中的使用目的而非出现位置来对类以及id进行结构化命名。可以按照如下所示的结构化方式来对类以及id名称命名:brandingmain-navsubnavmain-contentsidebar这些名字同直观命名方式一样非常易懂,但他们描述了页面元素的作用而非位置。这使得代码更加符合使用纯粹的结构化标记(structural markup)的初衷,即开发人员可以在不改变标记的情况下对各种各样媒体下的显示格式进行处理。即使你不打算在其他的媒体上对Web页面进行格式修改,使用结构化命名方式还可以帮助你在日后的站点升级或重新设计中更为轻松。例如,结构化命名避免了当一个div同id right-column移动到页面左边后所带来的混乱。对div sidebar的采用这样的命名方式就显得更加适当,因为无论它出现在页面的哪一边,这个名字仍然对开发人员来说直观易懂。一些命名惯例Andy Clarke分析了40份由推崇标准化Web设计理念的开发人员所设计的Web站点的源代码。尽管类以及id名称很不统一,但是还是发现了一些频繁出现的常用名称。这里给出了最常用类/id名称的示例列表:headercontentnavsidebarfooter这些常见的类以及id名称是否标志着一种标准的诞生或是普遍接受惯例的形成呢?尽管这是我所希望的,但我并不这么认为。我的确希望能够看见一整套对于我们每天都可以看到的常用页面元素的命名标准。同时,使用标准化的命名方式可以使得寻找页面元素以及对Web站点升级带来方便,尤其当需要在由不同开发人员在不同时间所开发站点中换来换去工作的时候。望采纳,谢谢

最近在 Weekly 邮件推送中查阅到这样的一条信息:

会发现这条信息里面出现了一个CSS的新名词 CSS Cascade Layers ,出于好奇以及对新知识的渴望(说得我自己都信了,哈哈),于是查阅起 CSS Cascade Layers 的相关资料,试图搞懂它。

at-rule 规则, CSS Conditional Rules Module Level 3 新增的规则,是一条语句,它为CSS提供了执行或如何执行的指令,常见的 at-rule 规则有:

级联(层叠)与继承 经过多年的发展迭代,目前已有多个版本( CSS22、Level3、Level4 和 Level5 )

何为级联(层叠)?

层叠本质就是定义了如何合并来自 多个源 的属性值的算法,简单来说,CSS规则的顺序很重要。当两条同级别的规则应用到一个元素的时候,写在后面的就是实际使用的规则。

两条规则 优先级相同 ,所以顺序在最后的生效, h1 是 color:blue '胜出',显示蓝色。

css属性一般来自于哪几个源?

层叠(级联)算法如何过滤来自不同源的css规则?

过滤来自不同源的css规则后,确定同源优先级高低,决定谁“优胜”

了解级联算法有助于帮助我们理解浏览器是如何解决样式规则冲突,也就是浏览器决定哪个样式规则运用到元素上,更多相关 css级联 的了解:

何为继承?

当元素的一个继承属性没有指定值时,则取父元素的同属性的计算值 。只有文档根元素取该属性定义的默认值,类似的属性有 color 、 font-size 等 。

CSS是由 Cascading Style Sheets 三个词的首字母缩写,很多人将其称为 层叠样式表或者级联样式表

CSS Cascade Layers ,也叫做 CSS级联层 ,是 Cascading and Inheritance Level5 规范中新增了一个新的 CSS 特性,对应的CSS属性写法 @layer ,即 一个新的 @ 规则 ,也就是大家所说的 at-rule 规则。

为啥会出现@layer?

也就是说我们一般会使用选择器权重和顺序作为控制级联的方法,但是这样却会时常碰到:

使用较高权重的选择器来防止你的代码被后面的代码(或别人的代码)覆盖。但这也会引起另一个不良的现象,可能会在代码中新增很多带有 !important 的样式规则,这本身就会引起更多的问题,比如 !important 在 CSS 样式表中随处可见,需要覆盖的时候难以被覆盖

使用较低权重的选择器又很容易被后面的代码(或别人的代码)覆盖。比如你在引入第三方代码库或组件时,自己的代码可能被覆盖。

这两个现象也是编写CSS代码,特别是在一个大型项目或多人协作的项目中常出现。也给很多CSS开发者带来很多困扰。

虽然社区有很多第三方方案,如 CSS-in-JS 、 CSS Modules 和 CSS Scoped 等来协助解决级联所带来的问题,但由于 源码顺序(打包产物)仍然起着决定性的作用,顺序带来的覆盖和冲突依旧未真正的解决,而且选择器权重仍然比层的顺序(源码顺序)更重要

这样的背景促进了 @layer 的出现,要真正的解决级联带来的这些问题。

@layer 的出现,也要求我们对以往 css级联 有个新的了解,

可以看出 CSS的级联层 一般位于“Style 属性”(Style Attribute)和 CSS 选择器权重(Specificity)之间。

使用 CSS级联层 ,可以通过 @layer at-rule将 CSS 分成多个层。

1、使用@layer 块规则,并立即为其分配样式:

2、使用规则@layer 语句,没有指定任何样式:

3、将@import 与layer关键字或layer()函数一起使用

以上每一个都创建了一个名为 的级联层reset。

在下面的例子中,我们建立四个级联层: reset,base,theme,和utilities 。

重复使用级联层名称时,样式将附加到现有级联层。级联层的顺序保持不变,因为只有第一次的出现已经确定顺序:

重新使用级联层名称时层顺序保持不变的使@layer 语法变得更加方便和严谨。使用它,可以预先建立图层顺序,然后将所有 CSS 附加到它:

按以往CSS级联来进行分析的话, form input (多层级)的优先级会大于 input ,但是由于 级联层 所起的作用, @layer theme 的 input 会取胜。

级联层 支持嵌套使用,如下:

在这个例子中有两个级联外层:

就像一棵树,像这样,

如果要将样式附加到嵌套级联层,需要使用以下全名来引用它,

如果第一个 @media (min-width: 30em) 匹配(基于视口尺寸),则layout级联层层将在图层顺序中排在第一位。如果只有 @media (prefers-color-scheme: dark) 匹配,theme则将是第一层。

如果两者匹配,则图层顺序将为layout, theme。如果没有匹配,则不定义层。

随着 Cascade Layers 的出现,我们的开发人员将拥有更多的工具来控制 Cascade 。 Cascade Layers 的真正力量来自它在 Cascade 中的独特位置: Style 属性(Style Attribute) 和 CSS 选择器权重(Specificity) 之间。因此,我们不需要担心其他层中使用的 CSS 的选择器特异性,也不需要担心我们将 CSS 加载到这些层中的顺序

了解到这里,是不是觉得 @layer 相当地cool,迫不及待地想去使用了,我们看一下 caniuse @layer 的兼容情况,

很遗憾,支持程度惨不忍睹,想真正使用可能还要再等等,对于明年三月份 Chromium 99 ,发布我们拭目以待。

当然现在如果想尝鲜,对于社区也有给出一些办法,

大家也可以试一试,感谢阅读!

当需要取到鼠标点击相对于层的位置信息时,在ie下可以用eventoffsetX, evnetoffsetY,在Firefox下是eventlayerX, eventlayerY。但是firefox下总是有问题,取到的不是相对于层的坐标,而是pageX,pageY。 Google了半天也没有发现什么解决办法,原来在层中要设置position为absolute或者relative。

以上就是关于怎样实现javascript中layer位置的相对定位全部的内容,包括:怎样实现javascript中layer位置的相对定位、如何获得一个回调函数中的数据、layer.open 打开一个html页面,content应该怎么传值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://www.54852.com/web/9470778.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存