鞋子:Element.width 返回0

发布于 2024-08-02 00:09:48 字数 180 浏览 10 评论 0原文

我不明白为什么如果宽度函数对于非零宽度元素返回 0,那么它会在所有元素上实现。 以下对我来说返回 0。

Shoes.app do
  p = para "My width is: "
  para p.width
end

这是为什么? (app.width不返回0)

I don't understand why the width function is implemented on all elements if it returns 0 for non-zero width elements. The following returns 0 for me.

Shoes.app do
  p = para "My width is: "
  para p.width
end

Why is that? (app.width does not return 0)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏闹i 2024-08-09 00:09:48

问题在于,para 对象的大小是在绘制时动态确定的。 在创建第二个段落时,实际上尚未布局任何内容,因此尚未设置宽度。 您可以看到,绘制后访问宽度按预期工作:

Shoes.app do
  p = para "My width is: "
  @para = para p.width
  button 'Get Width' do
    @para.text = p.width
  end
end

解决此问题的方法是使用 start 方法,该方法在第一次绘制包含槽时调用:

Shoes.app do
  p = para "My width is: "
  width = para p.width
  start do
    width.text = p.width
  end
end

The problem is that the size of the para object is determined dynamically when it is drawn. At the time you create the second para, nothing has actually been laid out yet, so a width hasn't been set. You can see that accessing the width after drawing works as expected:

Shoes.app do
  p = para "My width is: "
  @para = para p.width
  button 'Get Width' do
    @para.text = p.width
  end
end

The way to get around this is to use the start method, which is called when the containing slot is drawn for the first time:

Shoes.app do
  p = para "My width is: "
  width = para p.width
  start do
    width.text = p.width
  end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文