diff --git src/wp-includes/css/media-views.css src/wp-includes/css/media-views.css
index cccf307..7ee5d1e 100644
--- src/wp-includes/css/media-views.css
+++ src/wp-includes/css/media-views.css
@@ -270,7 +270,8 @@
 	width: 100%;
 }
 
-.media-sidebar h3 {
+.media-sidebar h3,
+.image-details h3 {
 	position: relative;
 	font-weight: bold;
 	text-transform: uppercase;
@@ -1603,23 +1604,34 @@
 .image-details .embed-media-settings {
 	top: 0;
 	overflow: visible;
+	padding: 0;
 }
 
 .image-details .column-settings {
-	width: 44%;
-	float: left;
-	margin-right: 20px;
+	background: #f3f3f3;
+	border-right: 1px solid #ddd;
+	min-height: 100%;
+	width: 52%;
+	position: absolute;
+	top: 0;
+	left: 0;
+}
+
+.image-details .column-settings h3 {
+	margin: 20px;
+	padding-top: 20px;
+	border-top: 1px solid #ddd;
 }
 
 .image-details .column-image {
-	width: 53%;
-	float: left;
+	width: 48%;
+	position: absolute;
+	left: 52%;
+	top: 0;
 }
 
-.image-details .column-image:after {
-    content: '';
-	display: table;
-    clear: both;
+.image-details .image {
+	margin: 20px;
 }
 
 .image-details .image img {
@@ -1627,6 +1639,29 @@
 	max-height: 500px;
 }
 
+.image-details .advanced-toggle {
+	font-style: italic;
+	color: #666;
+	text-decoration: none;
+	margin: 20px;
+	display: block;
+}
+
+.image-details .advanced-toggle::after {
+	font: normal 20px/1 'dashicons';
+	speak: none;
+	vertical-align: top;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+	content: '\f140';
+	display: inline-block;
+	margin-top: -2px;
+}
+
+.image-details .advanced-visible .advanced-toggle::after {
+	content: '\f142';
+	margin-top: 0;
+}
 
 .media-embed .thumbnail {
 	max-width: 100%;
@@ -1661,14 +1696,19 @@
 	clear: both;
 }
 
-.image-details .setting {
+.image-details .embed-media-settings .setting {
 	float: none;
+	width: auto;
 }
 
 .image-details .actions {
 	margin: 10px 0;
 }
 
+.image-details .hidden {
+	display: none;
+}
+
 .media-embed .setting input[type="text"],
 .media-embed .setting textarea {
 	display: block;
@@ -1677,9 +1717,20 @@
 	margin: 1px 0;
 }
 
-.image-details .setting input[type="text"],
-.image-details .setting textarea {
+.image-details .embed-media-settings .setting input[type="text"],
+.image-details .embed-media-settings .setting textarea {
 	max-width: inherit;
+	width: 70%;
+}
+
+.image-details .embed-media-settings .setting input.link-to-custom,
+.image-details .embed-media-settings .link-target {
+	margin-left: 27%;
+	width: 70%;
+}
+
+.image-details .embed-media-settings .link-target {
+	margin-top: 24px;
 }
 
 .media-embed .setting input.hidden {
@@ -1694,6 +1745,14 @@
 	color: #666;
 }
 
+.image-details .embed-media-settings .setting span {
+	float: left;
+	width: 25%;
+	text-align: right;
+	margin: 8px 1% 0 1%;
+	line-height: 1.1;
+}
+
 .media-embed .setting .button-group {
 	margin: 2px 0;
 }
@@ -1709,10 +1768,6 @@
 	margin-top: 10px;
 }
 
-.advanced .hidden {
-	display: none;
-}
-
 /* Drag & drop on the editor upload */
 #wp-fullscreen-body .uploader-editor,
 .wp-editor-wrap .uploader-editor {
@@ -1930,6 +1985,28 @@
 		right: 30px;
 	}
 
+	.image-details .embed-media-settings .setting {
+		margin: 20px;
+	}
+
+	.image-details .embed-media-settings .setting span {
+		float: none;
+		text-align: left;
+		width: 100%;
+		margin-bottom: 4px;
+	}
+
+	.image-details .embed-media-settings .setting input.link-to-custom,
+	.image-details .embed-media-settings .setting input[type="text"],
+	.image-details .embed-media-settings .setting textarea {
+		width: 100%;
+		margin-left: 0;
+	}
+
+	.image-details .link-target {
+		width: 100%;
+	}
+
 	.media-selection {
 		min-width: 120px;
 	}
@@ -2137,10 +2214,14 @@
 
 	.image-details .column-settings,
 	.image-details .column-image {
-		float: none;
+		position: relative;
+		padding: 10px 0 20px 0;
+		left: 0;
 		width: 100%;
+		min-height: inherit;
 	}
 
+
 	/* Gallery */
 	.media-frame.hide-router .media-frame-content {
 		top: 73px;
diff --git src/wp-includes/js/media-views.js src/wp-includes/js/media-views.js
index 80db8d2..fef88de 100644
--- src/wp-includes/js/media-views.js
+++ src/wp-includes/js/media-views.js
@@ -6059,15 +6059,13 @@
 		events: _.defaults( media.view.Settings.AttachmentDisplay.prototype.events, {
 			'click .edit-attachment': 'editAttachment',
 			'click .replace-attachment': 'replaceAttachment',
-			'click .show-advanced': 'showAdvanced'
+			'click .advanced-toggle': 'toggleAdvanced'
 		} ),
 		initialize: function() {
 			// used in AttachmentDisplay.prototype.updateLinkTo
 			this.options.attachment = this.model.attachment;
-			if ( this.model.attachment ) {
-				this.listenTo( this.model, 'change:url', this.updateUrl );
-				this.listenTo( this.model, 'change:link', this.toggleLinkSettings );
-			}
+			this.listenTo( this.model, 'change:url', this.updateUrl );
+			this.listenTo( this.model, 'change:link', this.toggleLinkSettings );
 			media.view.Settings.AttachmentDisplay.prototype.initialize.apply( this, arguments );
 		},
 
@@ -6113,8 +6111,8 @@
 		},
 
 		updateUrl: function() {
-			this.$( '.image img' ).attr( 'src', this.model.get('url' ) );
-			this.$( '.url' ).val( this.model.get('url' ) );
+			this.$( '.image img' ).attr( 'src', this.model.get( 'url' ) );
+			this.$( '.url' ).val( this.model.get( 'url' ) );
 		},
 
 		toggleLinkSettings: function() {
@@ -6125,11 +6123,16 @@
 			}
 		},
 
-		showAdvanced: function( event ) {
+		toggleAdvanced: function( event ) {
+			var $advanced = $( event.target ).closest( '.advanced' );
 			event.preventDefault();
-			$( event.target ).closest('.advanced')
-				.find( '.hidden' ).removeClass( 'hidden' );
-			$( event.target ).remove();
+			if ( $advanced.hasClass('advanced-visible') ) {
+				$advanced.removeClass('advanced-visible');
+				$advanced.find('div').addClass('hidden');
+			} else {
+				$advanced.addClass('advanced-visible');
+				$advanced.find('div').removeClass('hidden');
+			}
 		},
 
 		editAttachment: function( event ) {
diff --git src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
index 9f76d4c..2802bef 100644
--- src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
+++ src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
@@ -114,7 +114,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 	}
 
 	function extractImageData( imageNode ) {
-		var classes, metadata, captionBlock, caption, link,
+		var classes, extraClasses, metadata, captionBlock, caption, link,
 			dom = editor.dom;
 
 		// default attributes
@@ -127,13 +127,13 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 			caption: '',
 			alt: '',
 			align: 'none',
+			extraClasses: '',
 			link: false,
 			linkUrl: '',
 			linkClassName: '',
 			linkTargetBlank: false,
 			linkRel: '',
-			title: '',
-			className: ''
+			title: ''
 		};
 
 		metadata.url = dom.getAttrib( imageNode, 'src' );
@@ -141,24 +141,26 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 		metadata.title = dom.getAttrib( imageNode, 'title' );
 		metadata.width = parseInt( dom.getAttrib( imageNode, 'width' ), 10 );
 		metadata.height = parseInt( dom.getAttrib( imageNode, 'height' ), 10 );
-		metadata.className = imageNode.className;
 
-		classes = metadata.className.split( ' ' );
+		classes = tinymce.explode( imageNode.className, ' ' );
+		extraClasses = [];
+
 		tinymce.each( classes, function( name ) {
 
 			if ( /^wp-image/.test( name ) ) {
 				metadata.attachment_id = parseInt( name.replace( 'wp-image-', '' ), 10 );
-			}
-
-			if ( /^align/.test( name ) ) {
+			} else if ( /^align/.test( name ) ) {
 				metadata.align = name.replace( 'align', '' );
-			}
-
-			if ( /^size/.test( name ) ) {
+			} else if ( /^size/.test( name ) ) {
 				metadata.size = name.replace( 'size-', '' );
+			} else {
+				extraClasses.push( name );
 			}
+
 		} );
 
+		metadata.extraClasses = extraClasses.join( ' ' );
+
 		// Extract caption
 		captionBlock = dom.getParents( imageNode, '.wp-caption' );
 
@@ -251,11 +253,15 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 	}
 
 	function createImageAndLink( imageData, mode ) {
-		var classes = [],
+		var classes = tinymce.explode( imageData.extraClasses, ' ' ),
 			attrs, linkAttrs;
 
 		mode = mode ? mode : 'node';
 
+		if ( ! classes ) {
+			classes = [];
+		}
+
 		if ( ! imageData.caption ) {
 			classes.push( 'align' + imageData.align );
 		}
diff --git src/wp-includes/media-template.php src/wp-includes/media-template.php
index 76e595c..1d75368 100644
--- src/wp-includes/media-template.php
+++ src/wp-includes/media-template.php
@@ -641,6 +641,18 @@ function wp_print_media_templates() {
 	<script type="text/html" id="tmpl-image-details">
 		<div class="media-embed">
 			<div class="embed-media-settings">
+				<div class="column-image">
+					<div class="image">
+						<img src="{{ data.model.url }}" draggable="false" />
+
+						<# if ( data.attachment && window.imageEdit ) { #>
+							<div class="actions">
+								<input type="button" class="edit-attachment button" value="<?php esc_attr_e( 'Edit Original' ); ?>" />
+								<input type="button" class="replace-attachment button" value="<?php esc_attr_e( 'Replace' ); ?>" />
+							</div>
+						<# } #>
+					</div>
+				</div>
 				<div class="column-settings">
 					<?php
 					/** This filter is documented in wp-admin/includes/media.php */
@@ -656,16 +668,7 @@ function wp_print_media_templates() {
 						<input type="text" data-setting="alt" value="{{ data.model.alt }}" />
 					</label>
 
-					<div class="setting advanced">
-						<a class="show-advanced" href="#"><?php _e('show advanced'); ?></a>
-						<div class="hidden">
-							<label class="setting title-text">
-								<span><?php _e('Title Attribute'); ?></span>
-								<input type="text" data-setting="title" value="{{ data.model.title }}" />
-							</label>
-						</div>
-					</div>
-
+					<h3><?php _e( 'Display Settings' ); ?></h3>
 					<div class="setting align">
 						<span><?php _e('Align'); ?></span>
 						<div class="button-group button-large" data-setting="align">
@@ -685,86 +688,85 @@ function wp_print_media_templates() {
 					</div>
 
 					<# if ( data.attachment ) { #>
-						<div class="setting size">
-							<span><?php _e('Size'); ?></span>
-							<div class="button-group button-large" data-setting="size">
-							<?php
-								/** This filter is documented in wp-admin/includes/media.php */
-								$sizes = apply_filters( 'image_size_names_choose', array(
-									'thumbnail' => __('Thumbnail'),
-									'medium'    => __('Medium'),
-									'large'     => __('Large'),
-									'full'      => __('Full Size'),
-								) );
-
-								foreach ( $sizes as $value => $name ) : ?>
-									<# var size = data.attachment.sizes['<?php echo esc_js( $value ); ?>'];
-									if ( size ) { #>
-										<button class="button" value="<?php echo esc_attr( $value ); ?>">
-											<?php echo esc_html( $name ); ?>
-											</button>
-									<# } #>
-								<?php endforeach; ?>
-							</div>
-						</div>
+						<# if ( 'undefined' !== typeof data.attachment.sizes ) { #>
+							<label class="setting">
+								<span><?php _e('Size'); ?></span>
+								<select class="size" name="size"
+									data-setting="size"
+									<# if ( data.userSettings ) { #>
+										data-user-setting="imgsize"
+									<# } #>>
+									<?php
+									/** This filter is documented in wp-admin/includes/media.php */
+									$sizes = apply_filters( 'image_size_names_choose', array(
+										'thumbnail' => __('Thumbnail'),
+										'medium'    => __('Medium'),
+										'large'     => __('Large'),
+										'full'      => __('Full Size'),
+									) );
+
+									foreach ( $sizes as $value => $name ) : ?>
+										<#
+										var size = data.sizes['<?php echo esc_js( $value ); ?>'];
+										if ( size ) { #>
+											<option value="<?php echo esc_attr( $value ); ?>" <?php selected( $value, 'full' ); ?>>
+												<?php echo esc_html( $name ); ?> &ndash; {{ size.width }} &times; {{ size.height }}
+											</option>
+										<# } #>
+									<?php endforeach; ?>
+								</select>
+							</label>
+						<# } #>
 					<# } #>
 
 					<div class="setting link-to">
 						<span><?php _e('Link To'); ?></span>
-						<div class="button-group button-large" data-setting="link">
+						<select data-setting="link">
 						<# if ( data.attachment ) { #>
-							<button class="button" value="file">
+							<option value="file">
 								<?php esc_attr_e('Media File'); ?>
-							</button>
-							<button class="button" value="post">
+							</option>
+							<option value="post">
 								<?php esc_attr_e('Attachment Page'); ?>
-							</button>
+							</option>
 						<# } else { #>
-							<button class="button" value="file">
+							<option value="file">
 								<?php esc_attr_e('Image URL'); ?>
-							</button>
+							</option>
 						<# } #>
-							<button class="button" value="custom">
+							<option value="custom">
 								<?php esc_attr_e('Custom URL'); ?>
-							</button>
-							<button class="button active" value="none">
+							</option>
+							<option value="none">
 								<?php esc_attr_e('None'); ?>
-							</button>
-						</div>
+							</option>
+						</select>
 						<input type="text" class="link-to-custom" data-setting="linkUrl" />
 					</div>
-
-
-					<div class="setting link-settings">
-						<div class="setting link-target">
-							<label><input type="checkbox" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>><?php _e( 'Open link in a new window/tab' ); ?></label>
-						</div>
-						<div class="advanced">
-							<a class="show-advanced" href="#"><?php _e('show advanced'); ?></a>
-							<div class="hidden">
-								<label class="setting link-rel">
-									<span><?php _e('Link Rel'); ?></span>
-									<input type="text" data-setting="linkRel" value="{{ data.model.linkClassName }}" />
-								</label>
-								<label class="setting link-class-name">
-									<span><?php _e('CSS Class'); ?></span>
-									<input type="text" data-setting="linkClassName" value="{{ data.model.linkClassName }}" />
-								</label>
+					<div class="advanced">
+						<a class="advanced-toggle" href="#"><?php _e('Show advanced options'); ?></a>
+						<div class="hidden">
+							<label class="setting title-text">
+								<span><?php _e('Image Title Attribute'); ?></span>
+								<input type="text" data-setting="title" value="{{ data.model.title }}" />
+							</label>
+							<label class="setting extra-classes">
+								<span><?php _e('Image CSS Class'); ?></span>
+								<input type="text" data-setting="extraClasses" value="{{ data.model.extraClasses }}" />
+							</label>
+							<div class="setting link-target">
+								<label><input type="checkbox" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>><?php _e( 'Open link in a new window/tab' ); ?></label>
 							</div>
+							<label class="setting link-rel">
+								<span><?php _e('Link Rel'); ?></span>
+								<input type="text" data-setting="linkRel" value="{{ data.model.linkClassName }}" />
+							</label>
+							<label class="setting link-class-name">
+								<span><?php _e('Link CSS Class'); ?></span>
+								<input type="text" data-setting="linkClassName" value="{{ data.model.linkClassName }}" />
+							</label>
 						</div>
 					</div>
-
-				</div>
-				<div class="column-image">
-					<div class="image">
-						<img src="{{ data.model.url }}" draggable="false" />
-					</div>
-					<# if ( data.attachment && window.imageEdit ) { #>
-						<div class="actions">
-							<input type="button" class="edit-attachment button" value="<?php esc_attr_e( 'Edit Original' ); ?>" />
-							<input type="button" class="replace-attachment button" value="<?php esc_attr_e( 'Replace' ); ?>" />
-						</div>
-					<# } #>
 				</div>
 			</div>
 		</div>
