ทำไมปุ่มและอินพุตไม่เข้ากันใน Bootstrap
ฉันลองอะไรที่เรียบง่ายเช่น:
<input type="text"/><button class="btn">button</button>
ปุ่ม5px
ต่ำกว่าอินพุตใน chrome / firefox
ทำไมปุ่มและอินพุตไม่เข้ากันใน Bootstrap
ฉันลองอะไรที่เรียบง่ายเช่น:
<input type="text"/><button class="btn">button</button>
ปุ่ม5px
ต่ำกว่าอินพุตใน chrome / firefox
คำตอบ:
ใน Twitter Bootstrap 4 อินพุตและปุ่มสามารถจัดตำแหน่งโดยใช้คลาสinput-group-prepend
และinput-group-append
(ดูที่https://getbootstrap.com/docs/4.0/components/input-group/#button-addons )
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
<div class="input-group mb-3">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
ดังที่แสดงในคำตอบโดย @abimelex อินพุตและปุ่มสามารถจัดตำแหน่งได้โดยใช้.input-group
คลาส (ดูที่http://getbootstrap.com/components/#input-groups-buttons )
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
<input type="text" class="form-control">
</div>
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
การแก้ปัญหานี้ได้รับการเพิ่มที่จะให้คำตอบของฉันถึงวัน แต่โปรดติดของคุณขึ้นลงคะแนนให้กับคำตอบที่ได้รับจาก @abimelex
Bootstrap นำเสนอ.input-append
คลาสซึ่งทำงานเป็นองค์ประกอบ wrapper และแก้ไขสิ่งนี้ให้คุณ:
<div class="input-append">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
@OleksiyKhilkevich ชี้ให้เห็นในคำตอบของเขามีวิธีที่สองในการจัดแนวinput
และbutton
โดยใช้.form-horizontal
คลาส:
<div class="form-horizontal">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
ความแตกต่างระหว่างสองคลาสนี้คือการที่.input-append
จะbutton
เพิ่มขึ้นกับinput
องค์ประกอบ (ดังนั้นพวกเขาดูเหมือนว่าพวกเขาจะแนบ) ซึ่ง.form-horizontal
จะวางช่องว่างระหว่างพวกเขา
-- บันทึก --
ในการอนุญาตให้องค์ประกอบinput
และbutton
อยู่ติดกันโดยไม่มีการเว้นวรรคfont-size
ได้ถูกกำหนดเป็น0
ใน.input-append
คลาส (ซึ่งจะลบระยะห่างสีขาวระหว่างinline-block
องค์ประกอบ) สิ่งนี้อาจมีผลเสียต่อขนาดตัวอักษรในinput
องค์ประกอบหากคุณต้องการแทนที่ค่าเริ่มต้นโดยใช้em
หรือ%
การวัด
.input-append
ชั้นเรียน
margin-bottom: 9px
แต่ปุ่มไม่ทำดังนั้นจึงไม่ใช้พื้นที่แนวตั้งเดียวกัน เนื่องจากองค์ประกอบทั้งสองมีการmiddle
จัดตำแหน่งแนวตั้งปุ่มจึงถูกชดเชยเนื่องจากความแตกต่าง การใช้.input-append
wrapper จะลบค่าขอบล่างนี้
คุณอาจใช้คุณสมบัติปุ่มกลุ่มอินพุตเพื่อใช้ปุ่มโดยตรงกับฟิลด์อินพุต
Bootstrap 3 และ 4
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div><!-- /input-group -->
ดูตัวอย่างเอกสารอีกมากมายจากBS4 Input-Group
<div class="form-group input-group-btn">
แค่หัวขึ้นดูเหมือนจะมีคลาส CSS พิเศษสำหรับการเรียกนี้ form-horizontal
อินพุทผนวกมีผลข้างเคียงอีกอันหนึ่งซึ่งจะลดขนาดแบบอักษรเป็นศูนย์
font-size: 0
และเรียนรู้สิ่งใหม่ :) ขอบคุณ!
ใช้. form-inline = นี่จะจัดแนวป้ายกำกับและตัวควบคุมแบบอินไลน์บล็อกสำหรับเค้าโครงที่กะทัดรัด
ตัวอย่าง: http://jsfiddle.net/hSuy4/292/
<div class="form-inline">
<input type="text">
<input type="button" class="btn" value="submit">
</div>
.form แนวนอน = จัดแนวขวาของป้ายชื่อและลอยไปทางซ้ายเพื่อให้ปรากฏบนบรรทัดเดียวกันกับตัวควบคุมที่ดีกว่าสำหรับเค้าโครงแบบฟอร์มคอลัมน์ 2 คอลัมน์
(e.g.
Label 1: [textbox]
Label 2: [textbox]
: [button]
)
ตัวอย่าง: http://twitter.github.io/bootstrap/base-css.html#forms
form-inline
เหมาะกับ Bootstrap 3 ขอบคุณ
ฉันพยายามเหนือกว่าและจบลงด้วยการเปลี่ยนแปลงเล็กน้อยซึ่งฉันต้องการแบ่งปัน นี่คือรหัสที่ใช้งานได้สำหรับฉัน (ค้นหาภาพหน้าจอที่แนบมา):
<div class="input-group">
<input type="text" class="form-control" placeholder="Search text">
<span class="input-group-btn" style="width:0;">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
หากคุณต้องการให้มันใช้งานได้เพียงใช้โค้ดด้านล่างในโปรแกรมแก้ไข:
<html>
<head>
<link type='text/css' rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css' />
</head>
<body>
<div class="container body-content">
<div class="form-horizontal">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search text">
<span class="input-group-btn" style="width:0;">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
</div>
</div>
</body>
</html>
หวังว่านี่จะช่วยได้
style="width:0;"
?
<div class="col-md-4">
ไม่จำเป็นต้องwidth: 0
ฉันยังดิ้นรนกับปัญหาเดียวกัน คลาสบูตสแตรปที่ฉันใช้นั้นไม่ทำงานสำหรับฉัน ฉันมาด้วยวิธีแก้ปัญหาดังต่อไปนี้:
<form action='...' method='POST' class='form-group'>
<div class="form-horizontal">
<input type="text" name="..."
class="form-control"
placeholder="Search People..."
style="width:280px;max-width:280px;display:inline-block"/>
<button type="submit"
class="btn btn-primary"
style="margin-left:-8px;margin-top:-2px;min-height:36px;">
<i class="glyphicon glyphicon-search"></i>
</button>
</div>
</form>
โดยทั่วไปฉันเขียนทับคุณสมบัติการแสดงผลของคลาส "form-control" และใช้คุณสมบัติสไตล์อื่น ๆ เพื่อแก้ไขขนาดและตำแหน่ง
ต่อไปนี้เป็นผลลัพธ์:
Bootstrap 4:
<div class="input-group">
<input type="text" class="form-control">
<div class="input-group-append">
<button class="btn btn-success" type="button">Button</button>
</div>
</div>
<form class="form-inline">
<div class="form-group">
<label class="sr-only" for="exampleInputEmail3">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail3" placeholder="Email">
</div>
<button type="submit" class="btn btn-default">Sign in</button>
</form>
ฉันลองใช้รหัสข้างต้นทั้งหมดและไม่มีใครแก้ไขปัญหาของฉันได้ นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน ฉันใช้ input-group-addon
<div class = "input-group">
<span class = "input-group-addon">Go</span>
<input type = "text" class = "form-control" placeholder="you are the man!">
</div>
ไม่เกี่ยวข้องโดยตรงนอกจากว่าคุณจะมีรหัสที่คล้ายกัน แต่ฉันเพิ่งสังเกตเห็นพฤติกรรมแปลก ๆ ที่จะทำให้ฟอร์มอินไลน์ bootstrap 3.3.7
ฉันไม่ได้ใช้แถวและเซลล์สำหรับสิ่งนี้เนื่องจากเป็นโครงการเดสก์ท็อปหากแท็กเปิดอยู่ด้านล่างตาราง (ในกรณีนี้):
<table class="form-inline">
<form>
<tr>
องค์ประกอบแบบฟอร์มจะสแต็ค
สลับและเรียงกันอย่างเหมาะสม
<form>
<table class="form-inline">
<tr>
Safari 10.0.2 และ Chrome ล่าสุดไม่ได้สร้างความแตกต่างใด ๆ บางทีเลย์เอาต์ของฉันผิด แต่มันก็ไม่ให้อภัย
ใช้อินพุตลอยเป็นซ้าย จากนั้นนำปุ่มและลอยไปทางขวา คุณสามารถเคลียร์คลาส classfix เมื่อคุณใช้ระยะทางมากกว่าหนึ่งตัว
<input style="width:65%;float:left"class="btn btn-primary" type="text" name="name">
<div style="width:8%;float:left"> </div>
<button class="btn btn-default" type="button">Go!</button>
<div class="clearfix" style="margin-bottom:10px"> </div>
style="padding-top: 8px"
ใช้สิ่งนี้เพื่อเลื่อน div ของคุณขึ้นหรือลงในแถวของคุณ งานมหัศจรรย์สำหรับฉัน