我想创建一个小型垂直文本“水印”背景,它沿着一些reveal.js幻灯片的右侧上方运行。我已经知道,我需要使用
问题是,似乎很多几何计算发生在进行变换之前,结果在我尝试用flexbox对齐元素时会导致几何形状计算错误。这是一个基本的例子,几乎可以工作:
这样做的问题在于外层的
如果我尝试通过将
我猜测原因是基线放置的计算是基于旋转前的项目版本进行的,然后它们被旋转到你在那里看到的位置。
如何正确处理这种情况?有没有一种方法可以创建一个元素,在旋转发生后计算其位置的几何形状?
transform
来旋转任何我想垂直运行到页面右侧长度的元素。问题是,似乎很多几何计算发生在进行变换之前,结果在我尝试用flexbox对齐元素时会导致几何形状计算错误。这是一个基本的例子,几乎可以工作:
div.outer {
position: fixed;
top: 0;
bottom: 0;
right: 0;
background: grey;
display: flex;
flex-flow: column nowrap;
justify-content: space-around;
}
.item {
transform: rotate(-90deg);
background: red;
}
<div class="outer">
<div class="item" style="width: 200px">
Some text
</div>
<img class="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAUCAYAAAB7wJiVAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4gYGDxYxe2lIhQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAGiSURBVFjD7ZmxzYMwEIVfonQMkA1SUNAiUYBEmYKMkDEyg8fICEeRnhRIMEAkmMDpSUWkS4WU5geMjfiD/EnuzNPZjzvZ5w0zMyz/hp3dAn1erxcejweyLEOapgCAJEkQRRFc14XjOKO1NroZUtc1iqJAnue43+8AgDAMEQQBfN/H4XBYrRHv9xu32w2n06l3HhHheDxitxvx//NEpJQshGAAvUMIwVJKXhtN03Acx4Pr70Ycx9w0zaDuJEOqqmLP80YH43keV1W1GjPatlUy49uUtm3NGiKlVDLj25S1ZAoRKa+/G0Rk1pAxZaqvfK2hVE1dfzf6ShdUS5VuML9eusqy1N6Dsiz/1N+qnCqKotA+mZjQWJIsy2bVUDIkz3PtYExoLEl3z5hLQ8mQ7p6hgwmNNbO1W6BGkiSzaigZEoahdjAmNJYkiqJZNZQMCYJAOxgTGkviuu6sGkqG+L6vHYwJjSVxHAdENPl7IupvNtqLoW2d2OaibS7Olylj+lpENJgZHZPfQ57PJ67XKy6XS+88IQTO5zP2+719oLIPVL/HBwWcbe23UyTxAAAAAElFTkSuQmCC" alt="" />
</div>
div
宽度是根据未旋转的flexbox元素的宽度计算的,因此元素会显示为与页面侧边有所偏移。如果我尝试通过将
align-items
更改为flex-end
来修复这个问题,结果是每个元素都对齐到不同的位置。
div.outer {
position: fixed;
top: 0;
bottom: 0;
right: 0;
background: grey;
display: flex;
flex-flow: column nowrap;
justify-content: space-around;
align-items: flex-end;
}
.item {
transform: rotate(-90deg);
background: red;
}
<div class="outer">
<div class="item" style="width: 200px">
Some text
</div>
<img class="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAUCAYAAAB7wJiVAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4gYGDxYxe2lIhQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAGiSURBVFjD7ZmxzYMwEIVfonQMkA1SUNAiUYBEmYKMkDEyg8fICEeRnhRIMEAkmMDpSUWkS4WU5geMjfiD/EnuzNPZjzvZ5w0zMyz/hp3dAn1erxcejweyLEOapgCAJEkQRRFc14XjOKO1NroZUtc1iqJAnue43+8AgDAMEQQBfN/H4XBYrRHv9xu32w2n06l3HhHheDxitxvx//NEpJQshGAAvUMIwVJKXhtN03Acx4Pr70Ycx9w0zaDuJEOqqmLP80YH43keV1W1GjPatlUy49uUtm3NGiKlVDLj25S1ZAoRKa+/G0Rk1pAxZaqvfK2hVE1dfzf6ShdUS5VuML9eusqy1N6Dsiz/1N+qnCqKotA+mZjQWJIsy2bVUDIkz3PtYExoLEl3z5hLQ8mQ7p6hgwmNNbO1W6BGkiSzaigZEoahdjAmNJYkiqJZNZQMCYJAOxgTGkviuu6sGkqG+L6vHYwJjSVxHAdENPl7IupvNtqLoW2d2OaibS7Olylj+lpENJgZHZPfQ57PJ67XKy6XS+88IQTO5zP2+719oLIPVL/HBwWcbe23UyTxAAAAAElFTkSuQmCC" alt="" />
</div>
如何正确处理这种情况?有没有一种方法可以创建一个元素,在旋转发生后计算其位置的几何形状?