This is the fix I received from SellerDeck Support for moving Attributes and Components above Add To Cart. The fix removes the float and width on the attribute list that I suggested for 14.0.1 here and 14.0.2 here because it is the float that causes other elements to push off the side of the Attribute List and overlap or makes Add To Cart disappear. For the Attribute List instead of using CSS display block overflow hidden they suggest display table. I had to make some edits because they sent instructions for version 14.0.1 not 14.0.2 and missed the style in Responsive CSS Part 2. I added details for layout locations, 14.0.2 style changes, commented out CSS code with /* and */ to hide old styles rather than removing as you can then see what the original styles were if required. Edits added in parenthesis. It requires several changes to CSS so you have to be careful when editing. Make a backup before making changes. Remember to check the CSS code if future software upgrades are made.
The below code was sent by SellerDeck Support. Use at your own risk. It needs to be fully tested with different setups of component choices, browsers and mobile devices. A test on a default site with a default component and Chrome Developer Tools mobile emulator it looks okay.
In the [Design menu > Library > Layouts tab > Products >] 'Image on Left Text Wrapped Around' layout, move the following code:
<div id="idVars<actinic:variable name="ProductID" />">
<actinic:variable name="AttributeList" />
<actinic:variable name="ComponentList" />
</div>
To above the cart button placement code:
<actinic:block if="%3cactinic%3avariable%20name%3d%22IsAddToCartButtonShown%22%20%2f%3e%20AND%20%0d%28%3cactinic%3avariable%20name%3d%22NumberAttributesInPushButtonGrid%22%20%2f%3e%20%3d%3d%200%29" >
<p class="cart-button-placement">
<actinic:variable name="AddToCartButton" />
</p>
</actinic:block>
In the [Design menu > Library > Layout tab > Theme Stylesheets >] Responsive CSS layout. changed the following code from:
form.imageOnLeftTextWrappedAround p.cart-button-placement, form.imageOnRightTextWrappedAround p.cart-button-placement {display:block;overflow:hidden;}
to:
form.imageOnLeftTextWrappedAround p.cart-button-placement, form.imageOnRightTextWrappedAround p.cart-button-placement { /* display:block;overflow:hidden; */ display:table;}
[NOTE For version 14.0.1 only]
Also, changed the following code from:
div[id^="idVars"] .attribute-list {
display:block;
overflow:hidden;
}
to:
div[id^="idVars"] .attribute-list {
/* display:block;
overflow:hidden; */
display:table;
margin:0.5em 0 1em;
}
[For version 14.0.2 you need to change the following]
div[id^="idVars"] .attribute-list {
float:left;
display:-webkit-flex;
display:flex;
-webkit-flex-flow:row wrap;
flex-flow:row wrap;
width: 100%;
}
to:
div[id^="idVars"] .attribute-list {
/* float:left;
display:-webkit-flex;
display:flex;
-webkit-flex-flow:row wrap;
flex-flow:row wrap;
width: 100%; */
display:table;
margin:0.5em 0 1em;
}
[For version 14.0.2 you need to change the following]
div[id^="idVars"] .attribute-list .twoColumns {
-webkit-flex:0 0 48%;
flex:0 0 48%;
}
to:
div[id^="idVars"] .attribute-list .twoColumns {
/* -webkit-flex:0 0 48%;
flex:0 0 48%; */
}
[For version 14.0.2 you need to change the following]
div[id^="idVars"] .attribute-list .threeColumns {
-webkit-flex:0 0 32%;
flex:0 0 32%;
}
to:
div[id^="idVars"] .attribute-list .threeColumns {
/* -webkit-flex:0 0 32%;
flex:0 0 32%; */
}
[For version 14.0.1 and 14.0.2 you need to change the following]
@media screen and (max-width:1350px) {
div[id^="idVars"] .attribute-list {float:left; width:100%;}
#idInvoiceAccountAddresses {margin-left:26%;}
#idInvoiceAccountAddresses, #idDeliverAccountAddresses {width:30%;}
}
to:
@media screen and (max-width:1350px) {
div[id^="idVars"] .attribute-list {/* float:left; width:100%; */}
#idInvoiceAccountAddresses {margin-left:26%;}
#idInvoiceAccountAddresses, #idDeliverAccountAddresses {width:30%;}
}
[For version 14.0.2 you need to change the following at Design menu > Library > Layouts tab > Theme Stylesheets > Responsive CSS Part 2]
@media screen and (min-width:801px) and (max-width:1061px), (max-width:500px) {
div[id^="idVars"] .attribute-list .threeColumns {
-webkit-flex:0 0 48%;
flex:0 0 48%;
}
}
to
@media screen and (min-width:801px) and (max-width:1061px), (max-width:500px) {
div[id^="idVars"] .attribute-list .threeColumns {
/* -webkit-flex:0 0 48%;
flex:0 0 48%; */
}
}
The below code was sent by SellerDeck Support. Use at your own risk. It needs to be fully tested with different setups of component choices, browsers and mobile devices. A test on a default site with a default component and Chrome Developer Tools mobile emulator it looks okay.
In the [Design menu > Library > Layouts tab > Products >] 'Image on Left Text Wrapped Around' layout, move the following code:
<div id="idVars<actinic:variable name="ProductID" />">
<actinic:variable name="AttributeList" />
<actinic:variable name="ComponentList" />
</div>
To above the cart button placement code:
<actinic:block if="%3cactinic%3avariable%20name%3d%22IsAddToCartButtonShown%22%20%2f%3e%20AND%20%0d%28%3cactinic%3avariable%20name%3d%22NumberAttributesInPushButtonGrid%22%20%2f%3e%20%3d%3d%200%29" >
<p class="cart-button-placement">
<actinic:variable name="AddToCartButton" />
</p>
</actinic:block>
In the [Design menu > Library > Layout tab > Theme Stylesheets >] Responsive CSS layout. changed the following code from:
form.imageOnLeftTextWrappedAround p.cart-button-placement, form.imageOnRightTextWrappedAround p.cart-button-placement {display:block;overflow:hidden;}
to:
form.imageOnLeftTextWrappedAround p.cart-button-placement, form.imageOnRightTextWrappedAround p.cart-button-placement { /* display:block;overflow:hidden; */ display:table;}
[NOTE For version 14.0.1 only]
Also, changed the following code from:
div[id^="idVars"] .attribute-list {
display:block;
overflow:hidden;
}
to:
div[id^="idVars"] .attribute-list {
/* display:block;
overflow:hidden; */
display:table;
margin:0.5em 0 1em;
}
[For version 14.0.2 you need to change the following]
div[id^="idVars"] .attribute-list {
float:left;
display:-webkit-flex;
display:flex;
-webkit-flex-flow:row wrap;
flex-flow:row wrap;
width: 100%;
}
to:
div[id^="idVars"] .attribute-list {
/* float:left;
display:-webkit-flex;
display:flex;
-webkit-flex-flow:row wrap;
flex-flow:row wrap;
width: 100%; */
display:table;
margin:0.5em 0 1em;
}
[For version 14.0.2 you need to change the following]
div[id^="idVars"] .attribute-list .twoColumns {
-webkit-flex:0 0 48%;
flex:0 0 48%;
}
to:
div[id^="idVars"] .attribute-list .twoColumns {
/* -webkit-flex:0 0 48%;
flex:0 0 48%; */
}
[For version 14.0.2 you need to change the following]
div[id^="idVars"] .attribute-list .threeColumns {
-webkit-flex:0 0 32%;
flex:0 0 32%;
}
to:
div[id^="idVars"] .attribute-list .threeColumns {
/* -webkit-flex:0 0 32%;
flex:0 0 32%; */
}
[For version 14.0.1 and 14.0.2 you need to change the following]
@media screen and (max-width:1350px) {
div[id^="idVars"] .attribute-list {float:left; width:100%;}
#idInvoiceAccountAddresses {margin-left:26%;}
#idInvoiceAccountAddresses, #idDeliverAccountAddresses {width:30%;}
}
to:
@media screen and (max-width:1350px) {
div[id^="idVars"] .attribute-list {/* float:left; width:100%; */}
#idInvoiceAccountAddresses {margin-left:26%;}
#idInvoiceAccountAddresses, #idDeliverAccountAddresses {width:30%;}
}
[For version 14.0.2 you need to change the following at Design menu > Library > Layouts tab > Theme Stylesheets > Responsive CSS Part 2]
@media screen and (min-width:801px) and (max-width:1061px), (max-width:500px) {
div[id^="idVars"] .attribute-list .threeColumns {
-webkit-flex:0 0 48%;
flex:0 0 48%;
}
}
to
@media screen and (min-width:801px) and (max-width:1061px), (max-width:500px) {
div[id^="idVars"] .attribute-list .threeColumns {
/* -webkit-flex:0 0 48%;
flex:0 0 48%; */
}
}
Comment