Quantcast
Viewing all articles
Browse latest Browse all 1317

How can flexbox be used to re-arrange elements when responsively switching between single line and multi-line format?

I have a group of form inputs that are displayed on a single line on larger viewports and collapses to a multi-line display on smaller viewports. On the single line display I want a cancel button at the end of the line, but on the multi-line display I want it at the end of the first line, and I want the ends of both lines to be flush with each other.

I can do this by having two cancel buttons and conditionally displaying each based on a media query, as my snippet below shows, but it would be better to only have one button and shift its position based on the media query. Is there a way to do that in an example like mine by leveraging flexbox instead of using multiple cancel buttons? It seems like something that should be possible, but I can't imagine exactly how to do it.

* {    box-sizing: border-box;  }  input[name="qty"] {    width: 36px;  }  input[name="unit"] {    width: 192px;  }  button {    width: 72px;  }  input[name="item"] {    width: 300px;  }  .group-2 button {    display: none;  }  @media screen and (min-width: 700px) {    fieldset {      display: flex;    }    .group-1 button {      display: none;    }    .group-2 button {      display: inline;    }  }
<fieldset><div class="group-1"><input type="text" name="qty" placeholder="qty" /><input      type="text"      name="unit"      placeholder="unit"    /><button type="button">CANCEL</button></div><div class="group-2"><input type="text" name="item" placeholder="item" /><button      type="button">      CANCEL</button></div></fieldset>

Viewing all articles
Browse latest Browse all 1317

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>