<form action="task.php" method="post">
<input type="text" name="service" required>
<input type="text" name="unit" required>
<input type="number" name="price" required>
<input type="submit" name="submit" value="ok">
</form>
if (isset($_POST['submit'])) {
if ($_POST['service'] != '' && $_POST['unit'] != '' && $_POST['price'] != '') {
$sql = "INSERT INTO `test` (`service`, `unit`, `price`) VALUES (:service, :unit, :price)";
$statement = $pdo->prepare($sql);
$statement->execute([
'service' => $_POST['service'],
'unit' => $_POST['unit'],
'price' => $_POST['price']
]);
} else {
die('isset empty data.');
}
}
Ага. И это один из аргументов, почему нельзя обнулять все отступы и т.д., что я написала выше.
Потому что просто всё слипнется и читать это будет невозможно.
Да, будут отличия как она будет выглядеть в разных браузерах, но она будет читаемой.
Во-первых, потому что браузеру лишняя работа, а пользователю лишние байтики.
Во-вторых, если вы не позаботитесь о том, чтобы вернуть отступы тем, кому они нужны, всё слипнется.
Например, в тех блоках, где контент добавляется пользователем или при использовании сторонних виджетов, модулей и т.д., если в них не прописаны необходимые размеры.
<style>
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}</style>
<iframe width="560" height="315" src="https://www.youtube.com/embed/lwHArSK9KCY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
В каждом браузере есть предустановленные стили для почти всех элементов. Это нужно для того, чтобы страница без стилей имела хотя бы более‑менее читаемый вид. Дефолтные ЦСС‑правила нигде не стандартизованы, поэтому в каждом браузере они могут отличаться.
Чтобы заставить вёрстку вести себя так, как задумано в дизайне, каждому элементу страницы нужно задать определённые ЦСС‑правила. Дефолтные стили браузера стоят в самом начале каскада ЦСС. Из‑за этого нет никакой гарантии, что наши правила переопределят весь базовый набор стилей, установленных в браузере. Например, у p, ul, таблиц и многих других элементов всегда бывают установлены какие‑то отступы.
Чтобы гарантированно избавиться от побочных эффектов дефолтных стилей браузера, нужно сначала обнулить их. А потом с чистого листа писать свои ЦСС‑стили. Так мы получим одинаковое поведение вёрстки в любом браузере.
К счастью, это не очень сложно сделать. Для этого существует бесчисленное количество «ЦСС‑ресетов».