Вопрос

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;
}
Это было полезно?

Решение

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.

Другие советы

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;
}

Fiddle here.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top