Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 如何动态定义HTML元素的宽度_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何动态定义HTML元素的宽度

Javascript 如何动态定义HTML元素的宽度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个容器div和两个子div。容器div为100%宽度。子div的左浮动。未设置左div的宽度,因为其内容必须决定其宽度。右div的宽度必须为100%减去左div的宽度 HTML: 这是我尝试使用JQuery动态设置右div的宽度(当它被动态添加到页面时): $(document).ready( function(){ var nameWidth = $(".message-name").last().width(); alert(nameWidth); $("

我有一个容器div和两个子div。容器div为100%宽度。子div的左浮动。未设置左div的宽度,因为其内容必须决定其宽度。右div的宽度必须为100%减去左div的宽度

HTML:

这是我尝试使用JQuery动态设置右div的宽度(当它被动态添加到页面时):

$(document).ready( function(){

    var nameWidth = $(".message-name").last().width();

    alert(nameWidth);

    $(".message-msg").last().css("width","100%").width($(".message-msg").last() - nameWidth);

});
但这并没有改变任何事情

如何获得左div的宽度,然后从右div的宽度中减去该宽度,以确保右div不会断开到新行


这是我尝试的一个例子。

请试试这个

$(".message-msg").last().width($(".message-msg").last().width() - nameWidth);
存在每个div的Border
2px
。如果你想把它放在左边,那么试试这个

$(“.message msg”).last().width($(“.message msg”).last().width()-2-nameWidth-2)


请试试这个

$(".message-msg").last().width($(".message-msg").last().width() - nameWidth);
存在每个div的Border
2px
。如果你想把它放在左边,那么试试这个

$(“.message msg”).last().width($(“.message msg”).last().width()-2-nameWidth-2)


请试试这个

$(".message-msg").last().width($(".message-msg").last().width() - nameWidth);
存在每个div的Border
2px
。如果你想把它放在左边,那么试试这个

$(“.message msg”).last().width($(“.message msg”).last().width()-2-nameWidth-2)


请试试这个

$(".message-msg").last().width($(".message-msg").last().width() - nameWidth);
存在每个div的Border
2px
。如果你想把它放在左边,那么试试这个

$(“.message msg”).last().width($(“.message msg”).last().width()-2-nameWidth-2)


您可以通过CSS实现这一点

小提琴:

这通过将第二个div的溢出设置为
隐藏
自动
来实现。如果您的内容只是一个文本,我建议将其设置为
隐藏
,因为文本只是环绕

对css的更改 优势:
  • 适用于大多数浏览器(在IE7中测试)
  • 浏览器负责调整窗口大小
  • 清洁代码
  • 缺点
    • 溢出应该是
      隐藏的
      自动的
      。这对你来说不是问题,因为你只有文本

      • 您可以通过CSS实现这一点

        小提琴:

        这通过将第二个div的溢出设置为
        隐藏
        自动
        来实现。如果您的内容只是一个文本,我建议将其设置为
        隐藏
        ,因为文本只是环绕

        对css的更改 优势:
      • 适用于大多数浏览器(在IE7中测试)
      • 浏览器负责调整窗口大小
      • 清洁代码
      • 缺点
        • 溢出应该是
          隐藏的
          自动的
          。这对你来说不是问题,因为你只有文本

          • 您可以通过CSS实现这一点

            小提琴:

            这通过将第二个div的溢出设置为
            隐藏
            自动
            来实现。如果您的内容只是一个文本,我建议将其设置为
            隐藏
            ,因为文本只是环绕

            对css的更改 优势:
          • 适用于大多数浏览器(在IE7中测试)
          • 浏览器负责调整窗口大小
          • 清洁代码
          • 缺点
            • 溢出应该是
              隐藏的
              自动的
              。这对你来说不是问题,因为你只有文本

              • 您可以通过CSS实现这一点

                小提琴:

                这通过将第二个div的溢出设置为
                隐藏
                自动
                来实现。如果您的内容只是一个文本,我建议将其设置为
                隐藏
                ,因为文本只是环绕

                对css的更改 优势:
              • 适用于大多数浏览器(在IE7中测试)
              • 浏览器负责调整窗口大小
              • 清洁代码
              • 缺点
                • 溢出应该是
                  隐藏的
                  自动的
                  。这对你来说不是问题,因为你只有文本
                添加此

                $(".message-msg").last().css("width","100%").width($(".message-msg").last().width() - nameWidth);
                
                在thaat行中,您将宽度设置为100%,然后将宽度更改为100%,减去变量nameWidth,您必须获得最后一个div的宽度才能进行计算

                $(".message-msg").last().css("width","100%").width($(".message-msg").last().width() - nameWidth);
                
                在thaat行中,您将宽度设置为100%,然后将宽度更改为100%,减去变量nameWidth,您必须获得最后一个div的宽度才能进行计算

                $(".message-msg").last().css("width","100%").width($(".message-msg").last().width() - nameWidth);
                
                在thaat行中,您将宽度设置为100%,然后将宽度更改为100%,减去变量nameWidth,您必须获得最后一个div的宽度才能进行计算

                $(".message-msg").last().css("width","100%").width($(".message-msg").last().width() - nameWidth);
                
                在thaat行中,您将宽度设置为100%,然后将宽度更改为100%,减去变量nameWidth您必须获得最后一个div的宽度才能进行计算使用flexbox,这是为了最合理的目的

                无需编写脚本,更加灵活

                *{
                保证金:0;
                填充:0;
                }
                .集装箱{
                宽度:100%;
                最小高度:20px;
                溢出:自动;
                显示器:flex;
                弯曲方向:行;
                }
                .邮件名称{
                高度:20px;
                文本对齐:左对齐;
                边框:1px纯红;
                弹性收缩:0;
                }
                .message msg{
                边框:1px纯红;
                最小高度:20px;
                柔性生长:1;
                弹性收缩:1;
                }
                
                用户:

                一些信息

                用户:

                一些很长的信息会中断到新的线路,因为这条线路太长了。mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

                使用flexbox,这是出于最合理的目的

                无需编写脚本,更加灵活

                *{
                保证金:0;
                填充:0;
                }
                .集装箱{
                宽度:100%;
                最小高度:20px;
                溢出:自动;
                显示器:flex;
                弯曲方向:行;
                }
                .邮件名称{
                高度:20px;
                文本对齐:l