Djangoで入力フォームの作成に当たり、独自でモデルを定義し、テンプレートからブラウザに表示させましたが、PCブラウザだと少し左寄せになってしまいます。(※質問欄の下に画像貼り付けました。)
対応内容
まず、Djangoでのフォーム画面のカスタマイズを行うにあたり、django-widget-tweaksのインストールと当該テンプレートへloadしました。
<div>タグでalign="center"の指定と<center>タグも利用しましたが、ラベル(項目名)まで中央寄せされてしまいます。 <table>タグを利用しましたが、細かな調整が必要になり、レスポンシブ対応まで考えると、得策ではないと、諦めました。 <div class="form-container">および<div class="container">で<form>タグを囲みましたが、変化がありません。当該テンプレート
{% extends 'common/base.html' %} <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>入力フォーム</title> </head> {% block content %} {% load widget_tweaks %} <div class="form-container"> <h2 style="text-align:center; color:#FFFFFF;">アカウント登録</h2> <form method="POST" novalidate> {% csrf_token %} <div class='form-group'> <label class="col-sm-4 control-label">社員コード</label> <div class='col-sm-8'>{{form.empcd|add_class:"form-control"}}</div> </div> <div class='form-group' style=""> <label class="col-sm-4 control-label">パスワード</label> <div class='col-sm-8'>{{form.password|add_class:"form-control"}}</div> </div> <div class='form-group' style=""> <label class="col-sm-4 control-label">確認用パスワード</label> <div class='col-sm-8'>{{form.password|add_class:"form-control"}}</div> </div> <div class='form-group' style=""> <label class="col-sm-4 control-label">ユーザー名</label> <div class='col-sm-8'>{{form.username|add_class:"form-control"}}</div> </div> <div class='form-group' style=""> <label class="col-sm-4 control-label">所属部署</label> <div class='col-sm-8'>{{form.branch|add_class:"form-control"}}</div> </div> <div class='form-group' style=""> <label class="col-sm-4 control-label">就業形態</label> <div class='col-sm-8'>{{form.worktype|add_class:"form-control"}} </div> </div> <div class='form-group' style=""> <label class="col-sm-4 control-label">管理者</label> <div class='col-sm-8'> {{form.adminflg}} </div> </div> <div class='col-sm-8'> <button type="submit" class="btn btn-primary" style="background:#62BBE3">送信</button> </div> <p>{{ message }}</p> </form> </div> {% endblock %} </html>
base.html
{% load static %} <!doctype html> <html lang="ja"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <!--スマホ対応--> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!--JavaScript js--> <script type="text/javascript" src="{% static '/common/js/jquery-3.5.1.min.js' %}"></script> <script type="text/javascript" src="{% static '/common/js/sideMenu.js' %}"></script> <script type="text/javascript" src="{% static '/common/js/768px.js' %}"></script> <script type="text/javascript" src="{% static '/common/js/trLink.js' %}"></script> <!-- Bootstrap CSS --> <!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">--> <link rel="stylesheet" href="{% static 'common/css/bootstrap.min.css' %}"></link> <link rel="stylesheet" href="{% static 'common/css/base.css' %}"></link> <link rel="stylesheet" href="{% static 'common/css/base_768px.css' %}"></link> <link rel="stylesheet" href="{% static 'common/css/side_menu.css' %}"></link> <link rel="stylesheet" href="{% static 'common/icomoon/style.css' %}"></link> <title>Test System</title> <header id="header"> <table class="header_table"> <tr class="header_row1"> <td colspan="2"> <div class="header_row1_user icon-key" title="管理者" style="font-size: 1.2em"><span class="icon-user" style="font-size: 1.2em"></span><span style="font-size: 0.9em">{{ user.username }}山田太郎</span> </div> </td> <td style="width:110px;"> <a href="#" class="header_row1_logout icon-exit" style="font-size: 1.3em" title="ログアウト"><span style="font-size: 0.7em">ログアウト</span></a> </td> </tr> <tr class="header_row2"> <td style="width:70px;"> <a href="#" title="サイドメニュー"> <!-- ハンバーガーメニュー部分 --> <div class="Toggle"> <span></span> <span></span> <span></span> <span>menu</span> <span>close</span> </div> </a> </td> <td colspan="2"> <h1 class="header_row2_title"> <a href="#" title="メインメニュー">Test System</a> </h1> </td> </tr> </table> <!--ヘッダとコンテンツの隙間を定義するためのダミーテーブル--> <table style="height:130px;"> </table> <nav class="NavMenu"> <div id="list"> <ul id="DropMenu"> <li> <a style="{% block active_nipocreate %}{% endblock %}">作業日報作成</a> </li> <li> <a style="{% block active_workinglist %}{% endblock %}" href="{% url 'working_list:workinglistindex' %}">作業日報一覧</a> </li> <li> <a style="{% block active_serialnomaster %}{% endblock %}" href="{% url 'setting_serialnomaster:serialnomasterindex' %}">製番設定</a> </li> <li> <a style="{% block active_worktypemaster %}{% endblock %}" href="{% url 'setting_worktypemaster:worktypemasterindex' %}">業務種別設定</a> </li> <li> <a style="{% block active_accountlist %}{% endblock %}" href="{% url 'user:list' %}">アカウント設定</a> </li> </ul> </div> </nav> <!--追加終了_20201104--> </header> </head> <!--<body style="backgroud-color:#adff2f">--> <body> <div class="container"> {% block content %}{% endblock %} </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> </body> </html>
現状ではcontainerクラスによってフォーム部品が中央寄せになることを期待していますが、上述の通り変化がありません。
どなたかわかる方お教えください。よろしくお願いいたします。
追記(202012031117):現状までの対応状況
CSSでmarginを使いフォーム部品が中央になるようにしましたが、
ブラウザを小さくしていくと、項目名が中央の方に寄ってしまい、レイアウトが崩れてしまいます。
追記(202012031657):(最初の)回答に従い修正後の画面
追記(202012031952):回答の通り対応したら解決しました(前回の追記(202012031657)は誤りです)。
ブラウザを小さくしてもレイアウトが崩れません。
回答1件
あなたの回答
tips
プレビュー