Reputation: 12669
For some reason, when using div and input combined, the next inline
item is displaced. See example below.
div.inline-flex {
display: inline-flex;
}
<div>
<header>Object control:</header>
<div style="display: inline-block;">
Snap to grid size:
<div style="font-size: 12px;">(default: 50)</div>
<input
type="number"
value="50"
v-model="gridSize"
style="width: 50px;"
/>
<button
:class="{active: store.state.DrawMap.shouldSnap}"
@click="store.commit('drawmap_toggle_snap')"
>
Snap
</button>
</div>
<div class="inline-flex" style="flex-direction: column">
<button
@click="remove_object"
>
Remove
</button>
</div>
</div>
What it should look like
The remove button should be next to the Snap to grid size
line.
div.inline-flex {
display: inline-flex;
}
<div>
<header>Object control:</header>
<div style="display: inline-block;">
Snap to grid size:
<button
:class="{active: store.state.DrawMap.shouldSnap}"
@click="store.commit('drawmap_toggle_snap')"
>
Snap
</button>
</div>
<div class="inline-flex" style="flex-direction: column">
<button
@click="remove_object"
>
Remove
</button>
</div>
</div>
input and div were removed
Upvotes: 0
Views: 58
Reputation: 1049
You can do vertical-align:top
to quick fix it.
div.inline-flex {
display: inline-flex;
vertical-align:top;
}
Upvotes: 0
Reputation: 621
You are Setting the inline to "(default: 50)" rather than "Snap to Grid". If you move the declaration of "(default: 50)" to the end, then the buttons will be displayed inline to "Snap to Grid".
div.inline-flex {
display: inline-flex;
}
<div>
<header>Object control:</header>
<div style="display: inline-block;">
Snap to grid size:
<input
type="number"
value="50"
v-model="gridSize"
style="width: 50px;"
/>
<button
:class="{active: store.state.DrawMap.shouldSnap}"
@click="store.commit('drawmap_toggle_snap')"
>
Snap
</button>
</div>
<div class="inline-flex" style="flex-direction: column">
<button
@click="remove_object"
>
Remove
</button>
</div>
<div style="font-size: 12px;">(default: 50)</div>
</div>
---update----
div.inline-flex {
display: inline-flex;
}
<div>
<header>Object control:</header>
<div style="display: inline-block;">
Snap to grid size:
<div class="inline-flex" style="flex-direction: column">
<button
@click="remove_object"
>
Remove
</button>
</div>
<div style="font-size: 12px;">(default: 50)</div>
<input
type="number"
value="50"
v-model="gridSize"
style="width: 50px;"
/>
<button
:class="{active: store.state.DrawMap.shouldSnap}"
@click="store.commit('drawmap_toggle_snap')"
>
Snap
</button>
</div>
</div>
Upvotes: 0
Reputation: 418
I'm not sure if I get your desired output, but i think is this.
div.inline-flex {
display: inline-flex;
}
<div>
<header>Object control:</header>
<div style="display: inline-block; float:left;">
Snap to grid size:
<div style="font-size: 12px;">(default: 50)</div>
<input type="number" value="50" v-model="gridSize" style="width: 50px;" />
<button :class="{active: store.state.DrawMap.shouldSnap}" @click="store.commit('drawmap_toggle_snap')">
Snap
</button>
</div>
</div>
<div class="inline-flex" style="flex-direction: column;">
<button @click="remove_object">
Remove
</button>
</div>
Upvotes: 1