Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何定位:在元素到目标元素高度的50%后_Javascript_Css - Fatal编程技术网

Javascript 如何定位:在元素到目标元素高度的50%后

Javascript 如何定位:在元素到目标元素高度的50%后,javascript,css,Javascript,Css,如何将:放置在元素之后的父元素高度的50%处 我无法通过js访问:after动态更改,这将是一个简单的计算 元素是一个div,并且的相对绝对位置:后面的应该有一个50%div高度的顶值。尝试以下操作: div{ 高度:200px; 宽度:200px; 背景颜色:蓝色; 显示:表格; } 部门:之后{ 内容:“你好”; 显示:表格单元格; 垂直对齐:中间对齐; } 试试这个: div{ 高度:200px; 宽度:200px; 背景颜色:蓝色; 显示:表格; } 部门:之后{ 内容:“你好”;

如何将
:放置在
元素之后的父元素高度的50%处

我无法通过js访问
:after
动态更改,这将是一个简单的计算

元素是一个
div
,并且
的相对绝对位置:后面的
应该有一个50%div高度的顶值。

尝试以下操作:

div{
高度:200px;
宽度:200px;
背景颜色:蓝色;
显示:表格;
}
部门:之后{
内容:“你好”;
显示:表格单元格;
垂直对齐:中间对齐;
}
试试这个:

div{
高度:200px;
宽度:200px;
背景颜色:蓝色;
显示:表格;
}
部门:之后{
内容:“你好”;
显示:表格单元格;
垂直对齐:中间对齐;
}

您的请求不清楚,但一般来说,如果您使用绝对定位,则定位只是一个百分比问题。这也适用于伪元素的尺寸

div{
宽度:150px;
高度:150像素;
位置:相对位置;
保证金:1em自动;
背景:灰色;
}
div::之后{
内容:"你好",;
位置:绝对位置;
最高:50%;
左:0;
背景:#c0ffee;
身高:50%;
变换:translateY(-50%);/*垂直中心*/
宽度:50%;
文本对齐:居中;
线高:75px;
}

您的请求不清楚,但一般来说,如果您使用绝对定位,则定位只是一个百分比问题。这也适用于伪元素的尺寸

div{
宽度:150px;
高度:150像素;
位置:相对位置;
保证金:1em自动;
背景:灰色;
}
div::之后{
内容:"你好",;
位置:绝对位置;
最高:50%;
左:0;
背景:#c0ffee;
身高:50%;
变换:translateY(-50%);/*垂直中心*/
宽度:50%;
文本对齐:居中;
线高:75px;
}

如果伪元素是绝对定位的,那么只需设置一个
top:50%
就可以将伪元素的上边缘放在父元素的中间

否则,如果需要完全垂直中间对齐,则将其向后平移50%:

div::after {
    content: "...";
    position: absolute;
    top: 50%; left: 0;
    transform: translateY(-50%);
}
这将首先将伪图元的顶部定位在其图元的中间,然后将其向后平移(在Y坐标中)一半的高度

小提琴:

片段:

div{
位置:相对位置;
高度:200px;宽度:200px;
背景色:#66a;
}
div::之后{
内容:“中”;
位置:绝对位置;
顶部:50%;左侧:0;
转化:translateY(-50%);
}

如果伪元素是绝对定位的,那么只需设置一个
top:50%
就可以将伪元素的上边缘放在父元素的中间

否则,如果需要完全垂直中间对齐,则将其向后平移50%:

div::after {
    content: "...";
    position: absolute;
    top: 50%; left: 0;
    transform: translateY(-50%);
}
这将首先将伪图元的顶部定位在其图元的中间,然后将其向后平移(在Y坐标中)一半的高度

小提琴:

片段:

div{
位置:相对位置;
高度:200px;宽度:200px;
背景色:#66a;
}
div::之后{
内容:“中”;
位置:绝对位置;
顶部:50%;左侧:0;
转化:translateY(-50%);
}

不清楚你在问什么。您希望伪元素位于何处?元素的高度如果绝对定位,则
top:50%
对您不起作用?那是中间的顶部。否则,如果需要完全垂直居中对齐,则将其向后平移50%。看这里——是的:之后是绝对的positioned@Abhitalks请把这个作为一个答案。你问什么还不清楚。您希望伪元素位于何处?元素的高度如果绝对定位,则
top:50%
对您不起作用?那是中间的顶部。否则,如果需要完全垂直居中对齐,则将其向后平移50%。看这里——是的:之后是绝对的positioned@Abhitalks请把这个作为一个答案另一个评论有解决方案)另一个评论有解决方案)这么好的答案。