Add space between items with w3.css

I'm trying to make a group of buttons, but when trying this, the buttons have no gaps between them.

<div className="w3-row">
            <div className="w3-col w3-right-align">
              <button className="w3-btn w3-blue w3-padding w3-round" onClick={this.previewImage} >Preview</button>
              <button className="w3-btn w3-green w3-padding w3-round" href="#" to="#">Generate PDF</button>
              <button className="w3-btn w3-red w3-padding w3-round" href="#" to="#">Delete</button>
              <button className="w3-btn w3-green w3-padding w3-round" href="#" to="#">Save</button>
              <Link className="w3-btn w3-blue w3-padding w3-round" href="#" to="#">Cancel</Link>

This puts the buttons down, but without any gaps. I don't really want gaps on the right of the cancel button, as it aligns nicely with a box on the right of the screen.I really just want gaps ebtween each button. Is this possible with w3.css/

Whats the correct way to have some padding between each button, and have them next to each other?

I thought the w3-padding attribute would work, but as you see - it doesn't.

Just add one more class "w3-margin-left"

border-spacing, and the relevant (top, right, bottom, or left) padding on the table. The word-spacing property increases or decreases the white space between words. Note: Negative values are allowed. yes. Read about animatable Try it. JavaScript syntax: object .style.wordSpacing="20px" Try it. Browser Support. The numbers in the table specify the first browser version that fully supports the property.

I don't know w3.js but this is a similar affect achieved with regular css, to me it just seems like alot less to type once you get over the initial learning curve of flexbox, and it took only a min or 2 to implement.

.btn-group {
  display: flex;
  justify-content: flex-end;

.btn {
  margin-left: 5px;
  padding: 5px;
  border-radius: 5px;

.primary {
  background: cornflowerblue;

.danger {
  background: red;

.action {
  background: green;
<div class="btn-group">
  <button class=" btn primary">Preview</button>
  <button class="btn action">Generate PDF</button>
  <button class="btn danger">
  <button class="btn action">
  <button class="btn primary">

Distributing Space Inside a Flex Container, How do I add a space between columns in CSS? The CSS padding properties are used to generate space around an element's content, inside of any defined borders. With CSS, you have full control over the padding. There are properties for setting the padding for each side of an element (top, right, bottom, and left).

Use margin instead. Padding goes inside, margins are on the outside. In this case I would suggest giving flexbox a try and use justify-content: space-between to achieve evenly distributed and fluid content.

CSS word-spacing property, Example. Specify that the space between words in <p> elements should be 30 pixels: p { word-spacing: 30px; }. Try it Yourself »  CSS Borders are discussed in a separate tutorial. As you can see, margins set the outwards spacing, and padding the inwards. If margin, border and padding widths were all set at 0 width, the box would be right around the element. You can control each of the three spacing variables independently.

CSS Padding, There are properties for setting the padding for each side of an element (top, right​, bottom, and left). Padding - Individual Sides. CSS has properties for specifying  Grid containers consist of grid items, placed inside columns and rows. The grid-template-columns Property. The grid-template-columns property defines the number of columns in your grid layout, and it can define the width of each column. The value is a space-separated-list, where each value defines the length of the respective column.

CSS border-spacing property, Specifies the distance between the borders of adjacent cells in px, cm, etc. Negative values are not allowed. If one value is specified, it defines both the horizontal  Definition and Usage. The column-gap property specifies the gap between the columns. Note: If there is a column-rule between columns, it will appear in the middle of the gap.

CSS padding-top property, An element's padding is the space between its content and its border. The padding-top property sets the top padding (space) of an element. Note: Negative​  The HTML code to create the above list is: To adjust the spacing between the list items of the above list, we add this code to the ul tag in our CSS code: The CSS code will create greater space. This will produce the following list: Take Out the Garbage. Wash the Dishes. Wash the Car. Do the Laundry.