Javascript 宽显示器上的引导4:居中,并确保图像不高于包装它的文本

Javascript 宽显示器上的引导4:居中,并确保图像不高于包装它的文本,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,首先,很抱歉我的问题。我不期望这里的答案能对21世纪的计算机科学有所帮助,但我很感谢社区的帮助 我试图就以下链接的CodePen项目: 使主图像和标题在任何视图中居中,以及 在陨石坑图像和相关段落文本方面具有以下行为: 当段落文本大于图像时,文本环绕图像(在较小的显示器上) 当段落文本高度缩小(显示范围变宽)时,图像的高度不应超过它 这是一个指向该项目代码笔的链接,其中(无可否认)有一些调试代码作为JS,ID名为#hacky-*: . 我做这项工作的一些尝试实际上使页面变得更糟(现在,图像以

首先,很抱歉我的问题。我不期望这里的答案能对21世纪的计算机科学有所帮助,但我很感谢社区的帮助

我试图就以下链接的CodePen项目:

  • 使主图像和标题在任何视图中居中,以及
  • 在陨石坑图像和相关段落文本方面具有以下行为:
    • 当段落文本大于图像时,文本环绕图像(在较小的显示器上)
    • 当段落文本高度缩小(显示范围变宽)时,图像的高度不应超过它
  • 这是一个指向该项目代码笔的链接,其中(无可否认)有一些调试代码作为JS,ID名为
    #hacky-*
    : . 我做这项工作的一些尝试实际上使页面变得更糟(现在,图像以一定的尺寸位于某些后续段落的下方)

    当您增大/缩小显示宽度时,很明显包含图像的div正在改变高度,因此jQuery:

    $(window).on("resize", resizeImage)
    
    function resizeImage() {
      var x = $("#hacky-p-id").outerHeight();
      $("#hacky-img-id").css("height", x);
      $("#hacky-h3-id").text("Height: " + x);
      console.log("yes!");
    }
    
    是有影响的,只是绝对不是我想要的(实际上是相反的)。这是一个复杂的事实,它应该是一种
    img流体
    ,我本以为在规定的高度下可以很好地工作,但我没有足够的知识来完全理解这里的幕后可能发生的事情


    非常感谢您的帮助。

    问题1:您正在
    bootstrap.min.js
    之后加载
    jquery.min.js

    问题2:您没有加载引导4所需的
    tether.min.js

    问题3:您将
    #hacky-p-id
    放在了错误的段落上

    问题4:…您已将
    #hacky img id
    放置在图像的容器上,这不会缩小图像

    在这一点上,我停止计数,因为我发现你的标记完全被破坏了。在
    HTML
    中,关闭要打开的所有成对标记非常重要

    您应该避免的另一件事是使用嵌套的
    容器流体
    s。唯一可接受的嵌套引导
    容器
    s是当您将
    容器
    放置为
    容器流体
    的直接子对象时。大多数其他的
    容器
    嵌套都会导致边距/填充问题,大多数人发现这些问题很难调试/修复。实际上,一旦你有了一个
    容器
    ,你就不需要在里面再放一个了(除了上面的例子)——你只需要
    列-*-*
    组合

    这是你的一支钢笔。但是,我没有按照您最初的要求做,这是根据段落高度缩小图像,因为我碰巧认为这是一个非常糟糕的设计决策,因为它可能会产生严重的渲染问题:当您调整图像大小使其高度与段落高度匹配时,它会改变宽度,使段落回流并(可能)更改高度,使图像再次调整大小,使段落再次回流等等。。。这有可能进入渲染循环,这将使速度较慢的设备暂停,并导致浏览器崩溃。简言之,绝对不要这样做

    我并不特别同意但尚未“修正”的其他决定包括:

    • 将所有页面放置在
      .jumbotron
    • vmax
      中表示字体大小。您应该使用
      rem
      并启用
      px
      。这是安全可靠的解决方案

    问题1:在
    bootstrap.min.js
    之后加载
    jquery.min.js

    问题2:您没有加载引导4所需的
    tether.min.js

    问题3:您将
    #hacky-p-id
    放在了错误的段落上

    问题4:…您已将
    #hacky img id
    放置在图像的容器上,这不会缩小图像

    在这一点上,我停止计数,因为我发现你的标记完全被破坏了。在
    HTML
    中,关闭要打开的所有成对标记非常重要

    您应该避免的另一件事是使用嵌套的
    容器流体
    s。唯一可接受的嵌套引导
    容器
    s是当您将
    容器
    放置为
    容器流体
    的直接子对象时。大多数其他的
    容器
    嵌套都会导致边距/填充问题,大多数人发现这些问题很难调试/修复。实际上,一旦你有了一个
    容器
    ,你就不需要在里面再放一个了(除了上面的例子)——你只需要
    列-*-*
    组合

    这是你的一支钢笔。但是,我没有按照您最初的要求做,这是根据段落高度缩小图像,因为我碰巧认为这是一个非常糟糕的设计决策,因为它可能会产生严重的渲染问题:当您调整图像大小使其高度与段落高度匹配时,它会改变宽度,使段落回流并(可能)更改高度,使图像再次调整大小,使段落再次回流等等。。。这有可能进入渲染循环,这将使速度较慢的设备暂停,并导致浏览器崩溃。简言之,绝对不要这样做

    我并不特别同意但尚未“修正”的其他决定包括:

    • 将所有页面放置在
      .jumbotron
    • vmax
      中表示字体大小。您应该使用
      rem
      并启用
      px
      。这是安全可靠的解决方案
    谢谢。我