在阴影 dom 按钮元素上设置显示 属性
Set display property on shadow dom button element
我有一个 fiddle 描述了这个问题。鉴于 html
<input type="file" name="geoFile" class="file-drop" >
这又会生成以下阴影 dom 结构:
<input type="file" name="geoFile" class="file-drop">
#shadow-root (user-agent)
<input type="button" value="Choose File" pseudo="-webkit-file-upload-button">
#shadow-root (user-agent)
Choose File
</input>
</input>
如何将 display:none
设置为第一个 shadow-root
内的按钮?
我试过了
.file-drop {
width: 150px;
height: 150px;
border: 5px dashed darkgrey;
input[type='button'] {
display: none;
}
}
但按钮样式仍在显示。
您不能设置阴影的样式 DOM。您可以隐藏 input
并使用 label
和您的 stykles 获得相同的效果。
Here 您的 fiddle 分叉工作如前所述。
要select按钮,您可以使用select或.file-drop::-webkit-file-upload-button
。
由于您使用的是 SASS,它将是:
.file-drop {
width: 150px;
height: 150px;
border: 5px dashed darkgrey;
&::-webkit-file-upload-button {
display: none;
}
}
正如您的问题所暗示的,这仅适用于 -webkit
浏览器,因为每个浏览器都有自己的实现。
我有一个 fiddle 描述了这个问题。鉴于 html
<input type="file" name="geoFile" class="file-drop" >
这又会生成以下阴影 dom 结构:
<input type="file" name="geoFile" class="file-drop">
#shadow-root (user-agent)
<input type="button" value="Choose File" pseudo="-webkit-file-upload-button">
#shadow-root (user-agent)
Choose File
</input>
</input>
如何将 display:none
设置为第一个 shadow-root
内的按钮?
我试过了
.file-drop {
width: 150px;
height: 150px;
border: 5px dashed darkgrey;
input[type='button'] {
display: none;
}
}
但按钮样式仍在显示。
您不能设置阴影的样式 DOM。您可以隐藏 input
并使用 label
和您的 stykles 获得相同的效果。
Here 您的 fiddle 分叉工作如前所述。
要select按钮,您可以使用select或.file-drop::-webkit-file-upload-button
。
由于您使用的是 SASS,它将是:
.file-drop {
width: 150px;
height: 150px;
border: 5px dashed darkgrey;
&::-webkit-file-upload-button {
display: none;
}
}
正如您的问题所暗示的,这仅适用于 -webkit
浏览器,因为每个浏览器都有自己的实现。