简体   繁体   中英

How to get page background image behind bootstrap form

I am currently trying to put a whole page background but it is being shifted to the bottom because of the bootstrap form. I want the image to take the entire page and the bootstrap form to stay where it is. Also, how do I shrink the form slightly so it takes maybe half a page width?

This is my code:

<!DOCTYPE html>
<head>
    <title>Contact Us</title>
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
</head>
<style>
    html{
        background:url('images/watchBackground.jpg') no-repeat center center fixed;
        -webkit-background-size:cover;
        -moz-background-size:cover;
        -o-background-size: cover;
        background-size: cover;
    }
</style>
<body>
    <div class="container">
        <h1>Contact Us Page</h1>
    </div>
        <div class="container center_div">
            <div class="panel panel-default">
                <form id="iForm">
                <div class="row">
                    <div class="col-md-6">
                        <label for="Forename">Forename</label>
                        <input type="text" class="form-control" id="forename" placeholder="Forename">
                        <span class="error_form" id="errorForename">Test</span>
                    </div>
                    <div class="col-md-6">
                        <label for="Surname">Surname</label>
                        <input type="text" class="form-control" id="surname" placeholder="Surname">
                    </div>
                </div>  
                <fieldset class="form-group">
                    <label for="Email Address">Email Address</label>
                    <input type="text" class="form-control" id="emailAddress" placeholder="Email Address">
                </fieldset>
                <div class="row">
                    <div class"col-md-2">
                        <button type="submit" class="btn btn-success">Submit</button>
                    </div>
                </div>  
            </form> 
        </div>
    </div>
</body>
</html>

Would mean a lot if someone could kindly help me out, as I am quite novice to web development

Thanks

Instead of setting the background in html you should set it in the body instead.

Eg

body{
    background:url('images/watchBackground.jpg') no-repeat center center fixed;
    -webkit-background-size:cover;
    -moz-background-size:cover;
    -o-background-size: cover;
    background-size: cover;
}

Fiddle

first set your picture to body background body{background:url("images/watchBackground.jpg") no-repeat center center fixed;} then transparent elements that you want by inline css styling: style="background-color:transparent;"

your correction code is this:

<!DOCTYPE html>
<head>
    <title>Contact Us</title>
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
</head>
<style>
    body{
        background:url('k.jpg') no-repeat center center fixed;

    }
</style>
<body>
    <div class="container">
        <h1>Contact Us Page</h1>
    </div>
        <div class="container center_div" style="background-color:transparent;">
            <div class="panel panel-default" style="background-color:transparent;">
                <form id="iForm" style="background-color:transparent;">
                <div class="row" style="background-color:transparent;">
                    <div class="col-md-6">
                        <label for="Forename">Forename</label>
                        <input type="text" class="form-control" id="forename" placeholder="Forename">
                        <span class="error_form" id="errorForename">Test</span>
                    </div>
                    <div class="col-md-6">
                        <label for="Surname">Surname</label>
                        <input type="text" class="form-control" id="surname" placeholder="Surname">
                    </div>
                </div>  
                <fieldset class="form-group">
                    <label for="Email Address">Email Address</label>
                    <input type="text" class="form-control" id="emailAddress" placeholder="Email Address">
                </fieldset>
                <div class="row">
                    <div class"col-md-2">
                        <button type="submit" class="btn btn-success">Submit</button>
                    </div>
                </div>  
            </form> 
        </div>
    </div>
</body>
</html>

@benj Your css is all good. It's just that your body color is set to white (bootstrap default - coming from scaffolding in your case) and that white color is overlapping over your background image. You need to set it to transparent.

body {
background-color: transparent;
}

for form container width (shrink issue)...just wrap the whole panel into the bootstrap grid column..for example...

 <div class="col-md-8 col-md-offset-2">
        <div class="panel panel-default">
.........
......Your form code.......
...............
</div>
</div>

Adjust column width and offset value as per your requirement

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM