Flex Item will only respect the margin or padding when both are set simultaneously

I've been playing around with CSS and running into a problem where a flexbox item isn't respecting margin and padding correctly, causing the right side to have no margin. Here's a simplified example I came up with:

<body>
    <div class="flexbox">
        <div class="elem">
            This is an element that doesn't need to be full width.
        </div>
        <div class="elem" style="width: 100%;">
            This is an element that doesn't need to be full width.
        </div>
    </div>
</body>

<style>
    .flexbox {
        padding: 2rem;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        box-sizing: border-box;
    }
    .elem {
        margin-top: 1rem;
        padding: 2rem;
        background-color: aqua;
    }

</style>

Here's what it looks like visually: https://i.sstatic.net/QcUVF.png

Please keep in mind:

  • I'm required to use width:100% due to framework constraints.
  • Using align-self:stretch works fine but unfortunately, I can't implement it here.

Thanks for your help :)

Answer №1

It's important to remember to include the box-sizing property for the elem class as well. This ensures that the dimensions of elements account for any padding or borders they may have now or in the future. By using the box-sizing property, we can accurately calculate an element's total width and height. I hope this information was helpful :)

Answer №2

Your issue has been resolved by addressing a few minor issues:

* {
    margin: 0;
    padding: 0;
}

.flexbox {
    padding: 2rem;
    display: flex;
    width: 100%;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
}

.elem {
    padding: 2rem;
    width: 600px;
    background-color: aqua;
}

The HTML remains unchanged, with only the removal of the style= attribute in the element itself.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Open the HTML document and access the file contents

I'm having trouble reading a text file from my computer onto a website. It works fine in Internet Explorer, but won't work in Chrome. I don't have much experience with HTML, so any help would be much appreciated! <html> <body> ...

Is there a way to change the color of a specific tab without affecting the content within it

I am attempting to change the color of an individual tab using jQuery. However, when I set the background attribute in CSS, it colors the entire background instead. What specific property should I be setting to only change the color of the tab itself? ...

Problem with CSS: The background image is not showing up in Google Chrome, causing the drop-down list to display incorrectly

I have a developed application that needs to function properly on all browsers, with special emphasis on Chrome. Within the application, there is a dropdown list styled using the CSS below: .ddlStyle{ background-image: url("../Images/navigation_bg.jpg ...

Use jQuery to change the background color when clicked

Below is the HTML code with UL and LI elements: <UL> <LI><span id='select1'>Text</span></LI> <LI><span id='select2'>Text</span></LI> <LI><span id='select3'>Tex ...

Exploring ways to customize the selected text color within a jQuery mobile division using CSS

Is there a way to change the color of selected text to #3C3 for the div one only and not for div two? <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link ...

The webpage must be designed to be compatible with screen resolutions starting from 800 x 600 pixels and higher, utilizing Angular

I am working on developing a webpage that is specifically designed to work for resolutions of 800 x 600 pixels and higher. Any other resolutions will display the message "This website can only be accessed from desktops." Here is my approach using jQuery: ...

Find the IDs of all input boxes that have a specific class attached

Is there a way to retrieve the ID of an input field that has a specific class attribute? For example: <input id="first" class="failed" /> <input id="last" class="failed" /> <input id="city" class="failed" /> <input id="state" class=" ...

Toggle between list elements using the inner text of the elements with jQuery

My issue lies in figuring out why my filter function isn't properly working for toggling li elements. JavaScript: $("#searchbox1").on("keyup", function() { var value = $(this).val().toLowerCase(); $("#menulist li") ...

What are the risks of using react + bootstrap without importing bootstrap.js?

When bootstrap library is used along with React, potential unpredictable behavior and difficult bugs may arise due to DOM modifications. Is it feasible to use bootstrap without including bootstrap.js? What are the drawbacks? While I am aware of the ' ...

Troubleshooting problems with a JavaScript game that involves guessing numbers

I have been given a challenging Javascript assignment that involves using loops to create a counting betting game. The concept is simple: the User inputs a number, and the computer randomly selects a number between 1 and 10. The User can then bet up to 10 ...

Invoke Angular scope function from index.html using href

I have a user controller that contains a logout function. I am trying to figure out how to call this logout function using a hyperlink in my index.html file. Just to clarify, I am currently using yeoman as well. The hyperlink is located within the navigati ...

Discover the method for measuring the size of a dynamically generated list

I'm currently working on a chat box that displays messages as a list. One issue I'm facing is that when I click on the start chat button, the chat box opens but the length of the list always remains zero. How can I resolve this problem? $(docu ...

Enhancing the appearance of a Textfield with PHP and HTML styling

How can I adjust the width and center text in a textfield within a container? <input type=text style=width:90%text-align:center value=" . $rows[mysql_field_name($sql_result, 3)] . "> Setting the width in the style attribute works when isolated like ...

I'm having trouble extracting data into my HTML file using the append function in Jquery. What could be causing this issue?

Hey there, I'm having some trouble extracting data from a URL to my HTML file using jQuery. Can anyone help out? I'm still new to this. Here's the code <html> <head> <title> My Program </title> <script src="ht ...

Material-ui v5's DataGrid now includes a new filter icon feature

The current default setting for the new DataGrid is to only display a filter icon when hovering over the column header with an applied filter. In contrast, the previous version had the icon visible at all times. For reference, you can view the Codesandbox ...

jQuery replacing spaces in id names

I'm encountering an issue with the following HTML and jQuery code. The problem seems to be related to the space in the ID name. HTML <span id="plus one">Plus One</span> jQuery $("#plus one").hide(); Since I'm unable to change the ...

Troubleshooting issues with drawing images on HTML5 canvas: experiencing unexpected outcomes

As I am diving into learning how to use the HTML5 canvas element, I have had success in drawing rectangles, utilizing getImageData, manipulating pixels, and then using putImageData to witness the color changes of the rectangles, among other capabilities. ...

What is the process for setting a linear gradient border color on a table row's border?

Currently, I am attempting to apply a linear gradient border color to the table row. Below are the codes for the table: td:first-child { border-left: 1px solid black; border-bottom-left-radius: 50px; border-top-left-radius: 50px; } td:last-child { bor ...

Replace all characters processed by unescape (beyond just &, <, and >) with HTML escape

Is html.escape() symmetrical to .unescape()? The docs state that escape only converts &, <, and >, whereas .unescape handles "all named and numeric character references". How can I escape all characters that .unescape() unescapes? Current behavi ...

What's the deal with this loading GIF layout problem?

Styling with CSS: .smallLoaderBackground { background-image: url('loaderBackground.gif') !important; background-position: center center; background-repeat: no-repeat; position: fixed; left: 50%; top: 50%; height: 50px ...