Вертикально выровнять переключатели и текст - PullRequest
3 голосов
/ 30 марта 2019

Я пытаюсь сделать так, чтобы следующие стили сосуществовали в моем коде, чтобы применить их к переключателям, но я не могу заставить их работать одновременно.

Это как: display:flex;, так и vertical-align: baseline;

enter image description here

Это без: display:flex;, но с vertical-align: baseline;

enter image description here

Я пробовал с display:flex; align-items: center;, но он тоже не работает:

enter image description here

Видимо, я не могу сохранить 2 стиля на переключателях. Я пытался использовать другие стили, но они не работают так, как я хочу. Я хотел бы выровнять переключатели по вертикали с их метками и текстом на той же строке, что и на первом изображении. Вы можете помочь мне получить это?

Это мой код:

<?php
if ($row["type"] == 0) {

    $ansarray = explode("\n", $row["image_path"]);
    $randomans = [];
    for($i=0; $i<count($ansarray); $i++) {
        $a = array($i+1, $ansarray[$i]);
        array_push($randomans, $a);
    }
    shuffle($randomans);
    for($i=0; $i<count($randomans); $i++) {
        echo "<div style=\"text-align:left; display:flex; vertical-align: baseline;\">";
        echo "<input type=\"radio\" name=\"choice".$row["exercise_id"]."\" value= \"".$randomans[$i][0]."\"  />".$randomans[$i][1]."<br>";
        echo "</div>";
    }

    echo "<input type=\"text\" name=\"choicetext".$row["exercise_id"]."\" value='multi' style=\"display:none;\">";

} else {
    ?>
    <input type="radio" name="choice<?php echo $row["exercise_id"] ?>" value= "0" checked="checked" style="display:none;" />

    <?php
}
?>

Это небольшой пример того, что у меня есть: радиокнопки внутри стола.

<!DOCTYPE html>
<html>
<head>
<style>
table {
  border-collapse: collapse;
  width: 40%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;  
}

</style>
</head>

<body>
<table>
  <tr>
    <td><form action="">
    
  <input type="radio" name="gender" value="English"> English is a West Germanic language that was first spoken in early medieval England.<br>
  <input type="radio" name="gender" value="third"> English is the third most-spoken native language in the world, after Standard Chinese and Spanish.<br>
  <input type="radio" name="gender" value="other"> Other
</form></td>  
  </tr>
</table>
</body>
</html>

1 Ответ

4 голосов
/ 30 марта 2019

vertical-align: baseline не имеет ничего общего с flexbox.

Если вы хотите сделать это с помощью flexbox, присвойте оболочке div следующие свойства:

display: flex;
align-items: center;

echo "<div style=\"display:flex; align-items: center;\">";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...