【问题标题】:How to make the a border fit to a canvas and not the width of a parent div?如何使边框适合画布而不是父 div 的宽度?
【发布时间】:2018-10-22 00:01:05
【问题描述】:

我的网站有一个部分,其中一个 div 包含我的 game 并嵌套在一个类为 body-content 的 div 中:

<div class = "body-content">
    <div id = "game"></div>
</div>

div game 包含一个由 p5.js 生成的画布。

var canvas = createCanvas(SCREEN_SIZE, SCREEN_SIZE);
canvas.parent("game");

div body-content 设置了这样的 css,以便实现我想要的整个正文的对齐和边距:

.body-content {
    margin: auto;
    width: 80%;
}

我想在game div 的边缘专门放置一个边框,然后按照画布的大小来设置它:

.body-content #game {
    border: solid;
}

生成的边框与画布的顶部和底部正确匹配,但其宽度设置为 body-content 的宽度。

如何让边框与画布的宽度而不是父 div 的宽度一致?

【问题讨论】:

  • 你能创建一个 jsfiddle 演示吗?
  • 你为什么不将边框应用到画布元素开始,而不是容器div ...?
  • @CBroe 在 p5.js 草图运行之前,HTML 中没有 canvas 元素,即使这样也无法给所述画布一个 ID,以便我可以将 CSS 应用到它
  • “即使那样,也没有办法给所述画布一个 ID,以便我可以对其应用 CSS” - 还有许多其他方法可以定位元素,而不是只是一个 id ....body-content #game canvas { ... }

标签: html css


【解决方案1】:

你可以使用box-sizing:box-sizing: border-box

.body-content #game {
    box-sizing: border-box;
}

outline:

.body-content #game {
    outline: 1px solid red;
}

或者使用box-shadow做一个边框:

.body-content #game {
    box-shadow: 0 0 0 1px red;
}

【讨论】:

    【解决方案2】:

    我将这行代码添加到我的 p5.js 草图中:

    document.getElementById("game").style = "width: " + SCREEN_SIZE + "px";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多