width , innerwidth , outwerwidth, 都比实际值高 returns
width , innerwidth , outwerwidth, all returns higher value than actual
在页面上:
http://local.finerock.com/engagement-rings/halo-engagement-rings.html
我正在使用 flexbox 来显示产品过滤器,并使用一个小的 jquery 来设置子元素宽度等于它的兄弟元素,代码如下:
$(window).load(function(){
if($(window).width() >= 900){
$('.filter-options-content').width($('.filter-options-title').innerWidth());
}
});
它的宽度仍然比实际宽度长,请参见屏幕截图。
enter image description here
我已经使用了所有选项,width,outerWidth & innerWidth,结果还是一样。
在我看来,这不是创建下拉项的最佳方式。
不过,这里有一些修复技巧供您参考。
一开始不要用js给子元素宽高值
CSS
custom.css:185
.block.filter .block-content.filter-content .filter-options-item {
margin: 0 15px !important;
flex: 1;
max-width: 15% !important;
position: relative; /* add line */
}
custom.css:210
.block.filter .block-content.filter-content .filter-options-item .filter-options-content, .catalog-product-view .product-options-wrapper .swatch-attribute .swatch-attribute-options {
position: absolute;
border: 1px solid #e8d4c1;
padding: 10px;
background: #ffffff;
width: 100%; /* add line */
}
theme.css:6544
.page-layout-1column .block.filter .block-content.filter-content .block-filter-content {
padding: 20px;
max-height: calc(100% - 50px);
overflow-y: auto; /* remove line */
}
结果:
希望这能解决您的问题。
在页面上: http://local.finerock.com/engagement-rings/halo-engagement-rings.html
我正在使用 flexbox 来显示产品过滤器,并使用一个小的 jquery 来设置子元素宽度等于它的兄弟元素,代码如下:
$(window).load(function(){
if($(window).width() >= 900){
$('.filter-options-content').width($('.filter-options-title').innerWidth());
}
});
它的宽度仍然比实际宽度长,请参见屏幕截图。 enter image description here
我已经使用了所有选项,width,outerWidth & innerWidth,结果还是一样。
在我看来,这不是创建下拉项的最佳方式。
不过,这里有一些修复技巧供您参考。
一开始不要用js给子元素宽高值
CSS
custom.css:185
.block.filter .block-content.filter-content .filter-options-item {
margin: 0 15px !important;
flex: 1;
max-width: 15% !important;
position: relative; /* add line */
}
custom.css:210
.block.filter .block-content.filter-content .filter-options-item .filter-options-content, .catalog-product-view .product-options-wrapper .swatch-attribute .swatch-attribute-options {
position: absolute;
border: 1px solid #e8d4c1;
padding: 10px;
background: #ffffff;
width: 100%; /* add line */
}
theme.css:6544
.page-layout-1column .block.filter .block-content.filter-content .block-filter-content {
padding: 20px;
max-height: calc(100% - 50px);
overflow-y: auto; /* remove line */
}
结果:
希望这能解决您的问题。