Saltar al contenido

Cómo hacer y aparecen en la misma línea en un formulario HTML?

Este dilema se puede solucionar de variadas maneras, sin embargo te damos la que en nuestra opinión es la resolución más completa.

Solución:

Suponiendo que desee hacer flotar los elementos, también tendría que hacer flotar el label elementos también.

Algo como esto funcionaría:

label 
    /* Other styling... */
    text-align: right;
    clear: both;
    float:left;
    margin-right:15px;

#form 
    background-color: #FFF;
    height: 600px;
    width: 600px;
    margin-right: auto;
    margin-left: auto;
    margin-top: 0px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    padding: 0px;
    text-align:center;

label 
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 18px;
    color: #333;
    height: 20px;
    width: 200px;
    margin-top: 10px;
    margin-left: 10px;
    text-align: right;
    clear: both;
    float:left;
    margin-right:15px;

input 
    height: 20px;
    width: 300px;
    border: 1px solid #000;
    margin-top: 10px;
    float: left;

input[type=button] 
    float:none;

Alternativamente, un enfoque más común sería envolver el input/label elementos en grupos:

#form 
    background-color: #FFF;
    height: 600px;
    width: 600px;
    margin-right: auto;
    margin-left: auto;
    margin-top: 0px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    padding: 0px;
    text-align:center;

label 
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 18px;
    color: #333;
    height: 20px;
    width: 200px;
    margin-top: 10px;
    margin-left: 10px;
    text-align: right;
    margin-right:15px;
    float:left;

input 
    height: 20px;
    width: 300px;
    border: 1px solid #000;
    margin-top: 10px;

Tenga en cuenta que el for attribute debe corresponder a la id de un elemento etiquetable, no su name. Esto permitirá a los usuarios hacer clic en el label para dar foco al elemento de formulario correspondiente.

encontré "display:flex" El estilo es una buena forma de hacer que estos elementos estén en la misma línea. No importa qué tipo de elemento en el div. Especialmente si la clase de entrada es control de formulario, otras soluciones como bootstrap, inline-block no funcionarán bien.

Ejemplo:

Más detalles sobre la pantalla: flex:

dirección flexible: fila, columna

justificar-contenido: flex-end, center, space-between, space-around

alinear-elementos: estirar, flex-start, flex-end, center

aaa ## HTML Le sugiero que los envuelva en un div, ya que probablemente terminará flotando en ciertos contextos.

CSS

Luego, dentro de ese div, puedes hacer cada pieza inline-block para que puedas usar vertical-align para centrarlos, o establecer una línea de base, etc. (sus etiquetas y datos de entrada pueden cambiar de tamaño en el futuro …

.input-w label, .input-w input 
    float: none; /* if you had floats before? otherwise inline-block will behave differently */
    display: inline-block;
    vertical-align: middle;    

jsFiddle

ACTUALIZACIÓN: mediados de 2016 + con consultas de medios móviles primero y flex-box

Así es como hago las cosas estos días.

HTML




SCSS

html  // https://www.paulirish.com/2012/box-sizing-border-box-ftw/
  box-sizing: border-box;
  *, *:before, *:after 
    box-sizing: inherit;
  
 // if you don't already reset your box-model, read about it

.input-w 
  display: block;
  width: 100%; // should be contained by a form or something
  margin-bottom: 1rem;
  @media (min-width: 500px) 
    display: flex;
    flex-direction: row;
    align-items: center;
  
  .label, .input 
    display: block;
    width: 100%;
    border: 1px solid rgba(0,0,0,.1);
    @media (min-width: 500px) 
      width: auto;
      display: flex;
    
  
  .label 
    font-size: 13px;
    @media (min-width: 500px) 
      /* margin-right: 1rem; */
      min-width: 100px; // maybe to match many?
    
  
  .input 
    padding: .5rem;
    font-size: 16px;
    @media (min-width: 500px) 
      flex-grow: 1;
      max-width: 450px; // arbitrary
    
  

jsFiddle

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *