Применение css к сгенерированным Django объектам формы для textarea - PullRequest
0 голосов
/ 09 апреля 2019

На следующем снимке экрана показан код forms.py для создания поля ввода textarea в правой части (в котором есть текст-заполнитель: «Ваш комментарий к миру»).

enter image description here

CSS, однако, применяется только к блоку чистого HTML textarea (слева), и я не могу понять, как его получитьдля применения к сгенерированному в Django блоку ввода textarea.Вы заметите, что CSS был автоматически применен к верхнему текстовому полю ввода «Имя».

Код styles.css находится здесь:

body {
  background-color: white;
}
h1 {
  color: red;
  text-shadow: 3px 2px grey;
  font-family: Arial
}
p {
  color: black;
  font-family: Arial
}


input[type=text] {
  width: 20%;
  padding: 21px 20px;
  margin: 14px 0;
  box-sizing: border-box;
  font-size: 33;
  border: 2px solid red;
  border-radius: 4px;
  font-family: Arial
}

textarea[type=textarea] {
  width: 20%;
  padding: 21px 20px;
  margin: 14px 0;
  box-sizing: border-box;
  font-size: 33;
  border: 2px solid red;
  border-radius: 4px;
  font-family: Arial
}

forms.py (как показано выше с отображением HTML) ниже

from django import forms

class CommentForm(forms.Form):
    name = forms.CharField(max_length=20,widget=forms.TextInput(attrs={'placeholder':'Your Name Please'}))
    comment = forms.CharField(widget=forms.Textarea(attrs={'placeholder':'Your comment to the world'}))

И, наконец, страница sign.html (с HTML длясоответствующая страница) ниже

{% load static %}
<!DOCTYPE html>
<html>

<head>

  <link rel="stylesheet" href="{% static 'guestbook/styles.css' %}">
</head>
<body>

<h1>Tell the world how you're doing!</h1>
<h2>Sign the guestbook</h2>
<form action="/action_page.php">
  Enter your name:<br>
  <!--<input type="text" name="name" placeholder="Your Name here">-->
   {{form.name}}
  <br>
 Enter your comment:<br>
  <textarea name="message" type="Textarea" placeholder="Your comment here" rows="10" cols="30"></textarea>
  {{form.comment}}
  <br><br>

  <input type="button" value="Submit">

</form> 

<p>If you click the "Submit" button, the form-data will be sent to a page called "/action_page.php".</p>
<p>Go to the <a href="{% url 'index' %}"> guestbook </a> itself</p>
</body>
</html>

По сути, я хотел бы знать, как просто создать объект HTML (который является функциональным) и применить к нему CSS.

1 Ответ

0 голосов
/ 09 апреля 2019

Итак, если я правильно понимаю вопрос, у вас нет проблем с применением CSS к HTML, который вы жестко кодируете, и именно HTML, генерируемый с помощью системы шаблонов Django, у вас возникают проблемы с тем, чтобы ваш CSS придерживался yes? Я бы проверил визуализированный HTML этого сгенерированного django поля «комментарий». Я думаю, вы обнаружите, что ваши правила CSS не применяются, потому что HTML не то, что вы ожидаете. Другими словами, ваш селектор: textarea[type=textarea] не соответствует полю комментария, потому что он, вероятно, не является текстовой областью или не имеет атрибута type = textarea.

Вы можете добавить атрибуты в само определение виджета, если у вас возникли проблемы с прилипанием правила CSS, но я часто использую эту библиотеку . Это позволит вам добавить атрибуты в шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...