gpt4 book ai didi

css - 根据类 "range"分配CSS属性

转载 作者:行者123 更新时间:2023-11-28 09:13:54 28 4
gpt4 key购买 nike

我有一些 HTML 代码需要设置样式,这些代码由 Web 服务自动生成。我得到的部分代码看起来像这样:

<input type='text' id='txtField001' class='txtField150'>foo</input>    
<input type='text' id='txtField002' class='txtField10'>bar</input>
<input type='text' id='txtField001' class='txtField142'>sum</input>

现在,“奇怪”的部分来了:类名后面的数字(即:150、10 和 142)实际上是最大值。文本字段接受的字符数,slo 它给了我一个关于文本字段应该呈现多宽的“提示”:宽为 150,短为 10;由于这个数字变化很大(它是由调用 Web 服务的任何人定义的用户定义的)让“n”个类来符合所有可能的值是不切实际的。

所以:有没有一种方法可以有一个“范围类”或类似的东西 - 请记住,理论上,我不能改变网络服务提供的任何东西,而且我真的不想用javascript?

具体来说,有没有办法声明这样的东西(我知道这有点疯狂):

.txtField1 ... .txtField50 {
width: 50px;
}

.txtField50 ... .txtField100 {
width: 80px;
}

.txtField100 ... .txtField150 {
width: 120px;
}

(我在脑海中是这样理解的:“对于范围从 1 到 50 的任何类 txtField,使用 50px 宽度...等等)

感谢您的帮助。我知道这是不可能的,我最好的选择是使用 javascript,但是嘿,我不得不问 ;-)

最佳答案

是的,有限制

我一直在思考一个类似于 cimmanon 的解决方案,只是我知道它需要比那个更精致(这就是为什么它花了一些时间来回答)。

让我先声明这可能需要一个实际限制(我不知道在您的情况下是否有字符数限制)。 As you can see in my example fiddle ,任何 300+ 都无法解析为更大的尺寸。如果上限很高或未知,那么 javascript 确实是您的最佳解决方案。我的示例适用于不到 300 个,也许最多 999 个可以用不多的代码来制作。但我认为 1000+ 是不合理的。

CSS

/* set default as small size */
[class ^= "txtField"] {
width: 50px;
}

/* weed out 50-99, making sure not to get 5-9 */
[class *= "d5"]:not([class $= "d5"]),
[class *= "d6"]:not([class $= "d6"]),
[class *= "d7"]:not([class $= "d7"]),
[class *= "d8"]:not([class $= "d8"]),
[class *= "d9"]:not([class $= "d9"])
{
width: 80px;
}

/* weed out 100-199, making sure not to get 1 or 10-19
NOTE: this becomes a highly specific selector
*/
[class *= "d1"]:not([class $= "d1"]):not([class $= "d10"]):not([class $= "d11"]):not([class $= "d12"]):not([class $= "d13"]):not([class $= "d14"]):not([class $= "d15"]):not([class $= "d16"]):not([class $= "d17"]):not([class $= "d18"]):not([class $= "d19"])
{
width: 120px;
}

/* weed out 150-199, making sure not to get 15-19
NOTE: because the previous selector is so specific, this one
needed the !important flag (which I hate to use, but here
seemed to be the best and only solution)
*/
[class *= "d15"]:not([class $= "d15"]),
[class *= "d16"]:not([class $= "d16"]),
[class *= "d17"]:not([class $= "d17"]),
[class *= "d18"]:not([class $= "d18"]),
[class *= "d19"]:not([class $= "d19"])
{
width: 150px !important;
}

/* weed out 200-299, making sure not to get 2 or 20-29
NOTE: again high specificity
*/
[class *= "d2"]:not([class $= "d2"]):not([class $= "d20"]):not([class $= "d21"]):not([class $= "d22"]):not([class $= "d23"]):not([class $= "d24"]):not([class $= "d25"]):not([class $= "d26"]):not([class $= "d27"]):not([class $= "d28"]):not([class $= "d29"])
{
width: 180px;
}

/* weed out 250-299, making sure not to get 25-29
NOTE: !important needed again;
also, anything 300+ reverts back to smallest size unless
one keeps going... maybe 999 could be reached "reasonably"
*/
[class *= "d25"]:not([class $= "d25"]),
[class *= "d26"]:not([class $= "d26"]),
[class *= "d27"]:not([class $= "d27"]),
[class *= "d28"]:not([class $= "d28"]),
[class *= "d29"]:not([class $= "d29"])
{
width: 210px !important;
}

关于css - 根据类 "range"分配CSS属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504543/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com