I'm trying to place an icon at the center of two Input boxes.
What I've achieved until now is
What I wanted to achieve is
Source code : https://codesandbox.io/s/morning-brook-0vn6jb?file=/src/App.tsx
CodePudding user response:
Because this uses bootstrap, it seems that class position-relative can be added to the container div, and position-absolute top-50 start-50 translate-middle can be added for the icon.
Forked live demo on: codesandbox
The posted codesandbox is using reactstrap but did not seem to install bootstrap as it requires, so the above example had the package installed.
While the post is tagged with bootstrap-4, the installed version of reactstrap does not seem to support it, so this example had the new version of bootstrap installed. If bootstrap-4 is needed, some class names may need to be replaced as custom CSS.
A custom class is also added for the icon to add some higher z-index:
.custom-icon {
z-index: 2500;
}
import "./styles.css";
import { Row, Col, Input } from "reactstrap";
export default function App() {
return (
<Row>
<Col>
<div className="input-group position-relative">
<Input type="text" className="custom-input" placeholder="Origin" />
<Input
type="text"
className="custom-input"
placeholder="Destination"
/>
<img
src="https://cdn-icons-png.flaticon.com/512/1828/1828961.png"
alt="icon"
width="15"
className="position-absolute top-50 start-50 translate-middle custom-icon"
/>
</div>
</Col>
</Row>
);
}
CodePudding user response:
App.tsx
export default function App() {
return (
<Row>
<Col>
<div className="input-group">
<Input
type="text"
className="custom-input origin"
placeholder="Origin"
/>
<img
src="https://cdn-icons-png.flaticon.com/512/1828/1828961.png"
alt="star"
width="15"
className="star"
/>
<Input
type="text"
className="custom-input destination"
placeholder="Destination"
/>
</div>
</Col>
</Row>
);
}
styles.css
.App {
font-family: sans-serif;
text-align: center;
}
.input-group {
position: relative;
}
.input-group .custom-input {
height: 3rem;
letter-spacing: 1.5px;
font-size: 12px;
border-radius: 0px !important;
padding-left: 10px;
}
.input-group .destination {
position: absolute;
left: 170px;
}
.star {
z-index: 999;
position: relative;
left: -8px;
}
.autocomplete {
padding: 0px;
background-size: 17px 15px;
position: absolute;
}


