html - Chrome 和 Edge 不支持输入或选择标签的“书写模式”
问题描述
在 Firefox 中,“writing-mode:vertical-lr”对输入标签和选择标签有影响。如何在 Chrome 和 Edge 中获得相同的结果?
代码:
.gridContainer {
display:grid;
grid-gap:0;
grid-template-columns:2rem 2rem 16rem;
grid-template-rows:2rem 2rem 8rem;
grid-template-areas:
"verticalSelect verticalDate horizontalName"
"verticalSelect verticalDate horizontalTitle"
"verticalSelect verticalDate horizontalDescription";
background-color:rgba(255,255,255,1);
border:solid 1px rgb(0,0,0);
margin:5rem;
width:20rem;
}
.verticalSelect {
grid-area:verticalSelect;
}
.verticalDate {
grid-area:verticalDate;
}
.verticalSelect, .verticalDate {
writing-mode:vertical-lr;
transform:rotate(180deg);
border:solid 1px rgb(0,0,0);
}
.horizontalName{
grid-area:horizontalName;
border:solid 1px rgb(0,0,0);
}
.horizontalTitle {
grid-area:horizontalTitle;
border:solid 1px rgb(0,0,0);
}
.horizontalDescription {
grid-area:horizontalDescription;
border:solid 1px rgb(0,0,0);
resize: none;
}
<form action="" method="post">
<div class="gridContainer">
<select class="verticalSelect" name="prio">
<option value="A">Prio A</option>
<option value="B" selected>Prio B</option>
<option value="C">Prio C</option>
</select>
<div class="verticalDate">
<label for="deadline">Deadline:</label>
<input type="date" name="deadline">
</div>
<input class="horizontalName" type="text" placeholder="Name" name="name">
<input class="horizontalTitle" type="text" placeholder="Title" name="title">
<textarea class="horizontalDescription" name="description">Description</textarea>
</div>
</form>
此问题的解决方案仅适用于我的示例中的标签标签,但不适用于输入标签或选择标签。
解决方案
我自己找到了一个适合我的解决方案:
我没有使用写作模式,而是使用“transform:rotate();”完成了整个旋转。然后我通过“位置:相对;”实现了正确的定位。
.gridContainer {
display:grid;
grid-template-columns:2rem 2rem 16rem;
grid-template-rows:2rem 2rem 9rem;
grid-template-areas:
"verticalDiv verticalDate horizontalName"
"verticalDiv verticalDate horizontalTitle"
"verticalDiv verticalDate horizontalDescription";
border: 1px solid black;
margin:0;
width:20rem;
}
.verticalDiv {
grid-area:verticalDiv;
}
.verticalSelect{
position: relative;
transform:rotate(270deg);
top:5.5rem;
left:-5.5rem;
height:2rem;
width:13rem;
border:1px solid black;
}
.verticalDate {
grid-area:verticalDate;
border:1px solid black;
}
.verticalDate input {
position:relative;
transform:rotate(270deg);
background-color:transparent;
height:2rem;
width:8rem;
top:-1rem;
left:-3rem;
border:0px none transparent;
outline:none;
}
.verticalDate label {
position: relative;
transform: rotate(180deg);
writing-mode: vertical-lr;
background-color:transparent;
line-height:2rem;
top:8.5rem;
left:0rem;
}
.horizontalName{
grid-area:horizontalName;
border:solid 1px black;
}
.horizontalTitle {
grid-area:horizontalTitle;
border:solid 1px black;
}
.horizontalDescription {
grid-area:horizontalDescription;
border:solid 1px black;
resize: none;
margin:0;
}
<form action="" method="post">
<div class="gridContainer">
<div class="verticalDiv">
<select class="verticalSelect" name="prio">
<option value="A">Prio A</option>
<option value="B" selected>Prio B</option>
<option value="C">Prio C</option>
</select>
</div>
<div class="verticalDate">
<label for="deadline">Deadline:</label>
<input type="date" name="deadline">
</div>
<input class="horizontalName" type="text" placeholder="Name" name="name">
<input class="horizontalTitle" type="text" placeholder="Title" name="title">
<textarea class="horizontalDescription" name="description">Description</textarea>
</div>
</form>
推荐阅读
- file-upload - 我如何访问 angular 10 内的文件
- java - How to restart the timer in JFrame Java?
- javascript - Discord Bot - ReferenceError:未定义意图
- flutter - 如何在 Flutter 中使用后退按钮功能?
- reactjs - 反应标记我在哪个页面
- python - 使用python根据包含日期的文件名创建文件夹和子文件夹
- python - 如何为每次迭代创建一个带有附加的独立列表?
- javascript - javascript函数后的CSS属性
- html - CSS 和 HTML 文件在 Git Hub 上不起作用
- android - 当用户点击 Xamarin.Forms 中的本地通知时,我该如何处理?