Reputation: 1545
I am using Ghost Blogging Platform, and when I insert a image it automatically wraps a image in a p tag. I have a max-width setup for the container wrapping the p tag and the img. I want the img to be larger than the container. I can set a width for the img which is larger with width: 62rem;
However it no longer is responsive vs width: 100%;
I want the img to resize as I resize the browser, I was hoping to do it without media queries but if necessary I will do so.
I am already changing the size of all the p tags so that my blockquote is the size of the container section, and I want my image to do the same, but it is just the size of the p tag. My main concern is making the img responsive and larger, I can already make it larger on its own with a specified width, but it no longer stays responsive.
Thanks in advance.
CODE
HTML
<section class="post-content">
<h1 id="designanddevelopmentprocessforatechnolgyserviceandrepaircompany">Design and Development Process for a technolgy service and repair company.</h1>
<blockquote>
<p>Sketching is the first part of my process, sometimes I just play around in code, there is no exact process that I follow, often my creative mood will push me in different directions.</p>
</blockquote>
<p>For Tech Basics I started playing in the browser, below is the evolution of the design.</p>
<p><img src="/content/images/techFull.png" alt="Alt text"></p>
<p>Always I will setup my site under a github repository, so I can see my changes as I go and have a good backup of my code.</p>
<p>After debating for a while of whether to use a Zurbs Foundation, I have decided to go with html5 boiler plate custom, I want the site to be as minimal as possible and it is simple enough I dont need a massive template to still to rapid development, however it is nice to have the goodies bundled with html5 boiler plate have the option to remove the stuff that I dont need. Below is a list of what I used and why.</p>
<p>I am using docpad for this project, docpad is like static pages on steroids. So far I am loving it for fast development. I am using the no template and building from scratch, plopping in my custom html5 boiler plater contents.</p>
<p>I read this article <a href="http://alistapart.com/article/the-infinite-grid">http://alistapart.com/article/the-infinite-grid</a> and it is a great starting point for creating a responive site. It really hits home the theory, and not so much specifics about a one fit solution for a website.</p>
</section>
CSS
/* line 1, ../scss/screen.scss */
body {
font-size: 16px;
font-family: 'Cabin', sans-serif;
}
/* line 6, ../scss/screen.scss */
a {
color: #FA7FB5;
text-decoration: none;
}
/* line 16, ../scss/screen.scss */
#postSelect {
max-width: 82rem;
margin: auto;
}
/* line 20, ../scss/screen.scss */
#postSelect .tag-case-study {
max-width: 62rem;
margin: auto;
}
/* line 26, ../scss/screen.scss */
#postSelect .post-header {
position: fixed;
left: 1rem;
top: 1rem;
}
/* line 41, ../scss/screen.scss */
#postSelect .share {
text-align: center;
}
/* line 43, ../scss/screen.scss */
#postSelect .share a {
padding: 1rem;
}
/* line 48, ../scss/screen.scss */
#postSelect .author {
text-align: center;
font-variant: small-caps;
letter-spacing: 0.2rem;
font-size: 3rem;
}
/* line 55, ../scss/screen.scss */
#postSelect .post-title {
font-size: 1rem;
font-weight: 900;
font-style: italic;
text-align: center;
}
/* line 62, ../scss/screen.scss */
#postSelect .post-meta {
font-size: 1rem;
font-weight: 900;
font-style: italic;
text-align: center;
display: block;
}
/* line 70, ../scss/screen.scss */
#postSelect p {
max-width: 42rem;
margin: auto;
font-size: 1.5rem;
font-weight: 300;
line-height: 3rem;
padding: 2rem 0 2rem 0;
}
/* line 78, ../scss/screen.scss */
#postSelect p img {
width: 100%;
border: 1rem solid #fff;
}
/* line 84, ../scss/screen.scss */
#postSelect blockquote {
margin: 0;
padding: 2rem;
}
/* line 88, ../scss/screen.scss */
#postSelect blockquote p {
max-width: 60rem;
margin: 0;
text-align: center;
}
/* line 94, ../scss/screen.scss */
#postSelect blockquote:before {
content: url("../img/quote.png");
}
/* line 98, ../scss/screen.scss */
#postSelect blockquote:after {
content: url("../img/quoteB.png");
margin-left: 97.4%;
}
/* line 102, ../scss/screen.scss */
#postSelect ul {
max-width: 42rem;
margin: auto;
line-height: 3rem;
padding: 0;
}
/* line 107, ../scss/screen.scss */
#postSelect ul li {
list-style-type: square;
font-size: 1.5rem;
margin: 0;
}
/* line 114, ../scss/screen.scss */
#postSelect .post-content h1 {
font-size: 2.5rem;
letter-spacing: 0.1rem;
text-align: center;
color: #69BDFF;
}
Upvotes: 0
Views: 572
Reputation: 9043
I don't think you should have a div of a certain size and and then an element within that which then breaks out of the div because you've set it to be larger then the .container
First thing I would do is reorganize the way that container works. Here is a FIDDLE of some basic html to reference.
The second thing I would do - is ask a more targeted question about removing the automatic p tag from the image in a ghost forum (assuming they exist by now).
In WordPress this happens by default as well. It looks something like this with a function running a regular expression search and replace. I bet there is something like this for ghost, or there will be really really soon - because it's a huge pain - and almost no one actually puts images inline anymore. And if they did, they would want to control when this happens.
function filter_ptags_on_images($content) {
// do a regular expression replace...
// find all p tags that have just
// <p>maybe some white space<img all stuff up to /> then maybe whitespace </p>
// replace it with just the image tag...
return preg_replace('/<p>(\s*)(<img .* \/>)(\s*)<\/p>/iU', '\2', $content);
}
// we want it to be run after the autop stuff... 10 is default. ? ? ?
add_filter('the_content', 'filter_ptags_on_images');
Good luck! I hope to play with Ghost soon and I bet this will be the first problem I run into as well.
Upvotes: 1
Reputation: 15699
You are setting 100% width too image, but also giving it borders. This causes problem.
You need to subtract amount of border from image.
Try:
#postSelect p img {
width: calc(100% - 2rem);
border: 1rem solid #fff;
}
Upvotes: 1