jquery - jQuery height() 不返回实际高度,而是返回 0、-2 或 2
问题描述
我想要一个不同长度的标题前面的图标,有时是 1 行,有时是 2 行,图标应该调整到 1 或 2 行的高度。
由于 svg 占用了所有可用空间,它总是与 .svg 容器一样大。图标的 svg 是平方的,这就是我想要为其容器 .svg-container 实现的目标。它应该具有与 .headline 元素相同的高度,因此该高度也适用于 .svg 容器的宽度。
因此,我想获得 .headline 跨度的高度(或者它应该是一个 div 吗?)$('.headline').height();
并将返回值添加到 .svg-container via .css()
。
但我没有得到真正的高度,它返回 0。我试图获取页面上其他元素的高度,但它返回 0、-2 或 2。
我已经发现它需要一个$(document).ready(function(){
,但这并没有改变任何事情。
$(document).ready(function() {
var headlineHeight = $('.headline').height();
$('.svg-container').css('width', headlineHeight)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 class="spacing-after headline-with-icon">
<span class="svg-container">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 40 40" style="enable-background:new 0 0 40 40;" xml:space="preserve">
<use xlink:href="#icon-1"/><!-- takes the icon form an svg sprite -->
</svg>
</span>
<span class="headline">Headline in here</span>
</h1>
解决方案
我将.svg-container
-element 从 a更改span
为 adiv
因为 aspan
自然不接受宽度。我还添加了width: 100%;
这样的 svg 符合它的父母宽度,你可以看到脚本运行后 svg 变小了。我也投了一个console.log()
很好的措施。
$(document).ready(() => {
let headlineHeight = $('.headline').height();
console.log(headlineHeight);
$('.svg-container').css('width', headlineHeight)
});
.svg-container > svg {
width: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 class="spacing-after headline-with-icon">
<div class="svg-container">
<svg width="200" height="100" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="196" height="96" style="fill:#dedede;stroke:#555555;stroke-width:2"/></svg>
</div>
<span class="headline">Headline in here</span>
</h1>
推荐阅读
- scala - Kafka 消费者(相同的 group-id)总是从同一个分区读取
- babeljs - Webpack 报告我在 .eslintrc.json 文件中配置的 linter 错误
- ruby-on-rails - Ruby on rails 警告“ruby 正在以不安全的方式加载 libcrypto”
- r - 我想过滤物种名称“versicolor”的物种列的数据,我还想只选择“sepel_length”和“sepel_width”列
- oracle - 甲骨文顶点。加载没有 PK 的 CSV
- javascript - 根据国家/地区名称汇总对象中的数字(反应,javascript)
- c# - 在 ASP.NET 核心 ef 中更新值 (PUT) 时出现问题
- php - 使用 php laravel 填写 PDF 表单
- wix - MSI 显示违规进程未加载的 DLL 的文件正在使用对话框
- themes - 如何在 Shopify 的快速查看页面中添加色板?