javascript - 如何使按钮宽度跟随基于文本的最大宽度按钮?

标签 javascript jquery html css laravel

如何使所有按钮都遵循基于文本的较大宽度的宽度?

按钮动态生成,文本将基于数据库中的数据。然后我希望它们在 UI 上具有相同的大小。

这可能吗?如果是。怎么办?

这是我的按钮:

@foreach($buttons as $button)
 <button class="btn col-lg-2 col-md-3 col-sm-4 text-center btn-button button{{$button->parent_id}} hide" type="button" onclick="buttonFunction('button{{$button->id}}'"  style="background-color: #69C1DA;">
  <input type="radio" class="hide" name="type" value="{{$button->id}}" id="button{{$button->id}}">
  <span>{{$button->name}}</span>
 </button>
@endforeach

这是我的按钮的用户界面

enter image description here

如您所见,文本未安装。我可以使按钮比现在更大,但我不知道数据库中的单词什么时候会变得足够大而不再适合。

提前致谢。

最佳答案

如果是我 - 我会忘记尝试使用 boostrap 列,而只是使用 css 设置宽度样式。

这可以用普通的 javascript 完成(特别是使用 document.querySelectorAll() 选择器 - 但由于您使用的是 jquery - 这是方法 -

迭代按钮并通过将每个按钮宽度与最大宽度进行比较来找到最大宽度,如果它大于最大宽度 - 将该宽度设置为最大宽度。

然后将所有按钮设置为 maxWidth,瞧 - 所有按钮的宽度都与具有最长文本的按钮相同。

请注意,我只是为此代码段删除了一些代码 - 并且还将样式移到了 css block 中 - 对于每个按钮使用外部 css 总是比使用内联更好。如果您想为不同的按钮使用不同的样式 - 应用具有不同样式的不同类。

let maxWidth = 0;

$('.btn').each(function(){
 const width = parseFloat($(this).css('width'));
 if(width > maxWidth) {maxWidth = width}
})

$('.btn').css('width', maxWidth +'px');
.btn {
  background-color: #69C1DA;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="btn text-center btn-button button{{$button->parent_id}} hide" type="button">

  <span>text</span>
 </button>
  <button class="btn text-center btn-button button{{$button->parent_id}} hide" type="button">
  <span>longer text</span>
 </button>
  <button class="btn text-center btn-button button{{$button->parent_id}} hide" type="button" onclick="buttonFunction('button{{$button->id}}'">
  <span> very very long text</span>
 </button>
   <button class="btn text-center btn-button button{{$button->parent_id}} hide" type="button">
  <span>short text</span>
 </button>

关于javascript - 如何使按钮宽度跟随基于文本的最大宽度按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60218810/

相关文章:

javascript - 使用表格时,Jquery Next() 无法正确突出显示下一个元素

javascript - 使用无法在手机上正常工作的 anchor 标记从页面重定向到其他页面的特定部分

jquery:选择 <h1> 和下一个 <h1> 之前的所有内容

javascript - AngularJS - 为所有应用程序环境动态设置配置参数

javascript - 刷新页面后 jQuery 日期选择器不起作用

javascript - 根据点击的 div 返回不同的值

javascript - 两个单独的 HTML 元素上的链接 'active' 状态

javascript - 如何有两个后备图像占位符

javascript - 编写响应式页面

javascript - 从 DOM 节点周围删除文本