【问题标题】:How to add an attribute other than style attributes to css?如何将样式属性以外的属性添加到css?
【发布时间】:2015-02-02 06:04:41
【问题描述】:

我正在开发一个 html/css/javascript 程序,您可以解决程序生成的数独问题,就像一本在线益智书。正因为如此,如果<input /> 标签(准确地说是81)为每个标签提供唯一ID,我有很多。但我还必须为我编写的每个 <input /> 标签编写 maxlength 属性。

我想知道您是否可以改为在 css 中执行此操作。你能在 CSS 中拥有除样式属性之外的属性(例如bordermargin)吗?如果是这样,您如何引用它们?我试过直接输入它,但它似乎不存在。

我的示例输入标签:<input id="00" type="text" onclick="checkIfBold('00')" maxlength="1"/>

标签的 CSS:

input {
    border: 0px solid #000;
    width: 100%;
    height: 100%;
    font-size: 200%;
    text-align: center;
}

我的目标是使用 CSS 设置 <input /> 元素的 maxlength 属性。

请注意,我不仅仅是在询问这个特定的属性,而是在询问如何在 css 中引用任何其他 html 属性(如果可能的话)?

【问题讨论】:

  • 您是否在问,例如,如何通过 CSS 而不是内联设置所有输入的最大长度?既然您使用的是 Javascript,那么 JS/jQuery 解决方案是否适合您?
  • 是的,但我宁愿使用 CSS。
  • 好吧,我认为使用 CSS 是不可能的,如果是这样,那将是一些奇怪的 hack,可能不适用于所有浏览器,并且非常难以使用。 . 我在下面发布了一个 jQuery 解决方案,它对你来说很好用。
  • 您对我的评论的回答和帖子中的措辞似乎有些矛盾。您是在尝试设置元素的属性,还是尝试为具有特定属性值的元素设置样式?

标签: html css


【解决方案1】:

你不能。 CSS 用于定义事物应该如何看起来maxlength 定义了输入的工作原理maxlength 定义功能。如果您想为输入提供特定(视觉)大小,请使用width CSS 属性。

【讨论】:

  • sry,我想念理解这个问题变红
【解决方案2】:

根据我上面的评论:

你不能用 CSS 做到这一点,但用 jQuery 做起来很简单......

$(document).ready(function() {
    $("input").attr('maxlength','1');
});

'1' 替换为您希望maxlength 为任何数字,您也可以将'maxlength' 替换为您想要定位的任何其他属性。

【讨论】:

  • 好的,谢谢你的帮助。我想我只需要使用 Javascript,或者单独输入每个元素。
【解决方案3】:

这在 CSS 中是不可能的。你可以使用 javascript / jQuery。

这是一个 jQuery 的例子:

$('input[type="text"]').attr('maxlength', '1'); 

【讨论】:

  • 我认为问题在于获得一个(错误的)想法,即每个属性都可以或应该在 CSS 中定义。由于这是不可能的,您不妨在 HTML 中添加属性。无需为此编写 Javascript,尤其是如果这 81 个输入是由服务器端脚本生成的。但很高兴知道如何。 :)
  • @GolezTrol 我同意 JS 不需要 need,但因为看起来 OP 的目标是节省手动键入(复制/粘贴)maxlength 属性的时间/精力每个元素,这个答案最终都会做到这一点......
  • 我也不建议通过 Javascript 执行此操作,但正如您通过服务器端脚本指出的那样。但是我尝试帮助 OP 解决他的问题并向他展示了一个快速的客户端解决方案,因为他也尝试使用 CSS 来处理客户端。
【解决方案4】:

使用方括号选择 CSS 中的属性。请记住,您在这里没有太多的回旋余地。基本上,你可以说:

[border]{
  /*styles for elements with a border*/
}

[border=1px solid black]{
  /*styles for elements with a border of EXACTLY 1px solid black, in that order*/
}

没有通配符或部分匹配。您可能会更具体地选择 Javascript,或更改样式以外的任何内容。

【讨论】:

  • 我想你可能误解了这个问题。 OP 不想 select 具有特定属性的元素,而是 set 这些属性。
  • 啊——我明白了。然后是基本的理解问题。 style属性就是css,css就是style属性,仅此而已。
  • 是的,你可能没有误解......在我发表评论后,我重新阅读了 OP 的问题,但不太清楚,所以你可能是对的......我猜只是其中一个问题!
猜你喜欢
  • 1970-01-01
  • 2019-01-29
  • 2021-11-09
  • 2020-01-27
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
相关资源
最近更新 更多