Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置宽度<;部门>;是基于文本内容的两个值之一_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 设置宽度<;部门>;是基于文本内容的两个值之一

Javascript 设置宽度<;部门>;是基于文本内容的两个值之一,javascript,jquery,html,css,Javascript,Jquery,Html,Css,有没有办法根据中文本的大小使用条件运算符来设置其宽度 例如,如果有60个字符或更少,则宽度应为500px,否则为700px 在某种程度上,这很有效: .flex容器{ 显示器:flex; 柔性包装:包装; } .flex容器>div{ 显示:块; 最小宽度:600px; 保证金:2倍; 文本对齐:左对齐; } (A) Lorem ipsum dolor sit amet,圣职精英,sed do (B) Lorem ipsum dolor sit amet, (C) Lorem ipsum d

有没有办法根据
中文本的大小使用条件运算符来设置其宽度

例如,如果有60个字符或更少,则宽度应为500px,否则为700px

在某种程度上,这很有效:

.flex容器{
显示器:flex;
柔性包装:包装;
}
.flex容器>div{
显示:块;
最小宽度:600px;
保证金:2倍;
文本对齐:左对齐;
}

(A) Lorem ipsum dolor sit amet,圣职精英,sed do
(B) Lorem ipsum dolor sit amet,
(C) Lorem ipsum dolor sit amet
(D) Lorem ipsum dolor sit amet

您可以使用jQuery来实现这一点。运行循环并检查所有元素,如果其中一个元素的字符数超过60个,则对所有元素应用一个宽度

var-elem=$('.flex-container>div');
对于(变量i=0;i60){
元素css('width','600px');
打破
}
}
.flex容器{
显示器:flex;
柔性包装:包装;
}
.flex容器>div{
显示:块;
最小宽度:300px;
保证金:2倍;
文本对齐:左对齐;
边框:1px实心;
}

(A) Lorem ipsum dolor sit amet,圣职精英,sed do
(B) Lorem ipsum dolor sit amet,
(C) Lorem ipsum dolor sit amet
(D) 洛雷姆ips

您可以使用JavaScript,使用字符串长度属性和条件来解决这个问题

1) 在JavaScript中创建一个变量来访问您使用以下方法创建的div:
document.getElementsByTagName(“div”).innerHTML

2) 如果
,请使用
。在条件中,使用
length
属性和压缩程序查看长度是否大于一定数量的字符

3) 在语句中添加
document.getElementsByTagName(“div”).style.width=x
并通过更改
x
按所需的数字修改宽度


使用条件运算符,可以根据文本大小设置div的大小。

使用CSS网格比使用flexbox布局更容易做到这一点;在这里,我们利用
minmax()
函数来确定列宽(请记住,我们明确地设计了整个列的样式,而不仅仅是内容的特定“单元格”):

这里我们使用
repeat()
函数创建两列,每列的最小宽度为
500px
或最大宽度为700px

这将提供以下输出:

.flex容器{
显示:网格;
网格模板列:重复(2,最小值(500px,700px));
网格模板行:重复(2,1fr);
}
.flex容器>div{
空白:nowrap;
溢出:隐藏;
}

(A) Lorem ipsum dolor sit amet,圣职精英,sed do
(B) Lorem ipsum dolor sit amet,
(C) Lorem ipsum dolor sit amet
(D) Lorem ipsum dolor sit amet

(我没有足够的声誉来发布图片)我编辑了我的帖子,以澄清我到底想要什么。
grid-template-columns: repeat(2, minmax(min-content, 700px));