输入隐藏或div并显示:css中没有?[已关闭]

2izufjch  于 2022-11-26  发布在  其他
关注(0)|答案(4)|浏览(183)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

四年前就关门了。
Improve this question
在我们的项目中,我们都使用inputtype=hidden元素和divsdisplay:none css在html页面上存储一些数据,而不显示给用户。
所以我想知道哪种方式在性能和代码完整性以及html语义上更合适?

disbfnqx

disbfnqx1#

不管文档的样式规则(CSS)如何,隐藏的输入都将被隐藏,这可能会使它的性能更好,但我没有数据来显示这一点。话虽如此,输入控件应该作为表单的一部分提交。
还有其他一些方法,比如HTML5自定义数据属性或使用脚本标签:

<!-- Custom data attribute -->
<div id="product" data-id="42">
    <h1>Product name</h1>
</div>

<!-- JSON data embedded in a script tag -->
<script type="application/json">
    { "id": 42 }
</script>
cu6pst1q

cu6pst1q2#

影响性能的因素有很多,但是除非你存储大量的数据,否则性能的差异很可能无法区分。
对于代码完整性和语义来说,什么是最好的,取决于数据和使用数据的方式。
存储数据有多种选择:

  • 将数据存储在隐藏输入中,这非常适合与表单一起使用:

<input name="mydata" type="hidden" value="some data" />

  • 将数据存储在一个隐藏的html标签中,这通常是搜索引擎所不赞成的,因为它在试图提高SEO排名方面是滥用的:

<div id="mydata" style="display:none"> some data </div>

  • 将数据存储在javascript中,这非常便于快速访问:

<script type="text/javascript"> var data.id = 123; var data.list = ["Yes","No","Maybe"]; </script>

  • 将数据存储在 metaTag中,我很少使用这种方法:http://code.lancepollard.com/complete-list-of-html-meta-tags#create-custom-meta-tags

<meta name="mydata" content="some data"/>

http://html5doctor.com/introducing-web-sql-databases/

  • HTML5规范允许自定义数据属性

http://html5doctor.com/html5-custom-data-attributes/

bnlyeluc

bnlyeluc3#

从语义上来说,答案是--这取决于你如何使用它。
如果数据需要作为表单提交或者与表单密切相关,那么就使用input。我不确定什么情况不属于这一类,因为只在一个页面上使用的数据可以存储在一个javascript变量中,如果用户不应该看到它。

nbnkbykc

nbnkbykc4#

我认为,第一个解决方案(输入类型=隐藏)更漂亮,因为第二个解决方案依赖于css,它可能在浏览器中被禁用,您数据将显示给用户。

相关问题